gabrielberthier / s3-data-transfer
该软件包最新版本(1.0.3)没有可用的许可证信息。
一个使用PSR-7接口、异步操作和Zip选项处理S3上传和下载的软件包
1.0.3
2023-06-27 18:41 UTC
Requires
- php: ^8.0
- league/flysystem-aws-s3-v3: ^1.0
- maennchen/zipstream-php: ^2.1
- monolog/monolog: ^3.0
- vlucas/phpdotenv: ^5.3
Requires (Dev)
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9
README
一个使用PSR-7接口、异步操作和Zip下载处理S3上传和下载的软件包。
它是如何工作的?
IZI 您只需提供一组AWS凭证即可从资源进行上传和下载,这些资源包括
- AWS IAM密钥;
- 秘密;
- 存储桶区域和
- 您存储桶中使用的版本。
然后,需要实例化下载(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')]);