def check(self): from pcs_api.bytes_io import (MemoryByteSource, MemoryByteSink, StdoutProgressListener) from pcs_api.models import (CPath, CUploadRequest, CDownloadRequest) msg = "Cloud storage user_id = " + repr(self.storage.get_user_id()) self.ctx.logger.info(msg) msg = "Cloud storage quota = " + repr(self.storage.get_quota()) self.ctx.logger.info(msg) self.ctx.logger.info("Cloud storage is ready") fpath = CPath('/test_dir') self.storage.create_folder(fpath) bpath = fpath.add("test.txt") file_contents_uploaded = b"Test file contents" upload_request = CUploadRequest( bpath, MemoryByteSource(file_contents_uploaded)).content_type( 'text/plain') upload_request.progress_listener(StdoutProgressListener()) self.storage.upload(upload_request) file_contents_downloaded = MemoryByteSink() download_request = CDownloadRequest(bpath, file_contents_downloaded) download_request.progress_listener(StdoutProgressListener()) self.storage.download(download_request) self.storage.delete(fpath) if file_contents_uploaded != file_contents_downloaded.get_bytes(): raise RemotePCSError
def put_file(self, local_path, remote_path): from pcs_api.bytes_io import (FileByteSource, StdoutProgressListener) from pcs_api.models import (CPath, CUploadRequest) bpath = CPath(remote_path) upload_request = CUploadRequest(bpath, FileByteSource(local_path)) upload_request.progress_listener(StdoutProgressListener()) self.storage.upload(upload_request)
def put_bytes(self, local_bytes, remote_path): from pcs_api.bytes_io import (MemoryByteSource, StdoutProgressListener) from pcs_api.models import (CPath, CUploadRequest) byte_source = MemoryByteSource(local_bytes) bpath = CPath(remote_path) upload_request = CUploadRequest(bpath, byte_source).content_type('text/plain') upload_request.progress_listener(StdoutProgressListener()) self.storage.upload(upload_request)
def test_upload_request_progress_listener(): mbs = MemoryByteSource(b'content') ur = CUploadRequest(CPath('/foo'), mbs) assert ur.byte_source() is mbs # Now if we decorate: pl = StdoutProgressListener() ur.progress_listener(pl) istream = ur.byte_source().open_stream() data = istream.read(1) assert pl.current == 1
def test_upload_request_progress_listener(): mbs = MemoryByteSource(b"content") ur = CUploadRequest(CPath("/foo"), mbs) assert ur.byte_source() is mbs # Now if we decorate: pl = StdoutProgressListener() ur.progress_listener(pl) istream = ur.byte_source().open_stream() data = istream.read(1) assert pl.current == 1