gabrielberthier/s3-data-transfer

该软件包最新版本(1.0.3)没有可用的许可证信息。

一个使用PSR-7接口、异步操作和Zip选项处理S3上传和下载的软件包

1.0.3 2023-06-27 18:41 UTC

This package is auto-updated.

Last update: 2024-09-11 19:43:56 UTC


README

一个使用PSR-7接口、异步操作和Zip下载处理S3上传和下载的软件包。

它是如何工作的?
IZI 您只需提供一组AWS凭证即可从资源进行上传和下载,这些资源包括

  1. AWS IAM密钥;
  2. 秘密;
  3. 存储桶区域和
  4. 您存储桶中使用的版本。

然后,需要实例化下载(S3DownloaderFactory,S3AsyncDownloaderFactory)或上传(S3UploadingFactory,S3AsyncUploadingFactory)的任何工厂,向接收到的工厂对象提供一些AWS对象的详细信息,然后您就可以使用该库提供的功能了。

从S3下载对象

// Receive a stream from the objects
$stream = $streamResourceCollector->streamCollect(
  $bucketName,
  new ResourceObject('fookey.txt', 'foo-name.txt'),
  new ResourceObject('barkey.txt', 'bar-name.txt')
);


foreach ($resources as $objkey => $obj) {
    // do something
}

向S3上传对象

// $source may be a object Stream or a string path
$results = $uploadObjects($bucketName, new UploadableObject('test-upload.txt', $source));

压缩对象

  // $streamCollector must be an instance of StreamCollectorInterface
  $streamCollector = (new S3DownloaderFactory()->create(/* credentials */));
  $zip = new S3StreamObjectsZipDownloader($streamCollector);
  $streamOfZipFile = $zip->zipObjects(self::$bucket, [new ResourceObject('test.txt', 'testa.txt')]);