コード例 #1
0
ファイル: remote_handler.py プロジェクト: erdc/hit
 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
コード例 #2
0
ファイル: remote_handler.py プロジェクト: erdc/hit
 def get_file(self, local_path, remote_path):
     from pcs_api.bytes_io import (FileByteSink, StdoutProgressListener)
     from pcs_api.models import (CPath, CDownloadRequest)
     bpath = CPath(remote_path)
     download_request = CDownloadRequest(bpath, FileByteSink(local_path))
     download_request.progress_listener(StdoutProgressListener())
     self.storage.download(download_request)
コード例 #3
0
ファイル: remote_handler.py プロジェクト: erdc/hit
 def get_bytes(self, remote_path):
     from pcs_api.bytes_io import (MemoryByteSink, StdoutProgressListener)
     from pcs_api.models import (CPath, CDownloadRequest)
     remote_bytes = MemoryByteSink()
     bpath = CPath(remote_path)
     download_request = CDownloadRequest(bpath, remote_bytes)
     download_request.progress_listener(StdoutProgressListener())
     self.storage.download(download_request)
     return remote_bytes.get_bytes()
コード例 #4
0
ファイル: test_models.py プロジェクト: netheosgithub/pcs_api
def test_download_request_progress_listener():
    mbs = MemoryByteSink()
    dr = CDownloadRequest(CPath('/foo'), mbs)
    assert dr.byte_sink() is mbs

    # Now if we decorate:
    pl = StdoutProgressListener()
    dr.progress_listener(pl)
    os = dr.byte_sink().open_stream()
    os.write(b'a')
    assert pl.current == 1
コード例 #5
0
ファイル: test_models.py プロジェクト: kery-chen/pcs_api
def test_download_request_progress_listener():
    mbs = MemoryByteSink()
    dr = CDownloadRequest(CPath("/foo"), mbs)
    assert dr.byte_sink() is mbs

    # Now if we decorate:
    pl = StdoutProgressListener()
    dr.progress_listener(pl)
    os = dr.byte_sink().open_stream()
    os.write(b"a")
    assert pl.current == 1
コード例 #6
0
ファイル: quick_start.py プロジェクト: kery-chen/pcs_api
fpath = CPath('/pcs_api_new_folder')
storage.create_folder(fpath)

# Upload a local file in this folder :
bpath = fpath.add('pcs_api_new_file')
file_content = b'this is file content...'
upload_request = CUploadRequest(bpath, MemoryByteSource(file_content)).content_type('text/plain')
storage.upload(upload_request)

# Download back the file :
mbs = MemoryByteSink()
download_request = CDownloadRequest(bpath, mbs)
storage.download(download_request)
assert mbs.get_bytes() == file_content

# delete remote folder :
storage.delete(fpath)

# Example : we'll download a range of largest blob :
if largest_blob:
    range_start = largest_blob.length / 2
    range_length = min(largest_blob.length / 2, 1000000)
    bs = FileByteSink('dest_file.txt')
    print("Will download range from largest blob : %s to : %s" %
          (largest_blob, bs))
    dr = CDownloadRequest(largest_blob.path, bs).range(range_start, range_length)
    # watch download progress :
    dr.progress_listener(StdoutProgressListener())
    storage.download(dr)
    print()
コード例 #7
0
ファイル: quick_start.py プロジェクト: netheosgithub/pcs_api
# Upload a local file in this folder :
bpath = fpath.add('pcs_api_new_file')
file_content = b'this is file content...'
upload_request = CUploadRequest(
    bpath, MemoryByteSource(file_content)).content_type('text/plain')
storage.upload(upload_request)

# Download back the file :
mbs = MemoryByteSink()
download_request = CDownloadRequest(bpath, mbs)
storage.download(download_request)
assert mbs.get_bytes() == file_content

# delete remote folder :
storage.delete(fpath)

# Example : we'll download a range of largest blob :
if largest_blob:
    range_start = largest_blob.length / 2
    range_length = min(largest_blob.length / 2, 1000000)
    bs = FileByteSink('dest_file.txt')
    print("Will download range from largest blob : %s to : %s" %
          (largest_blob, bs))
    dr = CDownloadRequest(largest_blob.path, bs).range(range_start,
                                                       range_length)
    # watch download progress :
    dr.progress_listener(StdoutProgressListener())
    storage.download(dr)
    print()