亚马逊S3存储服务文件上传与获取工具(基于AWS sdk for PHP 3.x)

亚马逊S3存储服务文件上传与获取工具(基于AWS sdk for PHP 3.x)


直接上代码

<?php
/**
 * Desciption : 亚马逊S3文件管理工具类
 *
 * @author    : [email protected]
 * @date      : 2018-09-19
 *
 *
 */

namespace Chunbo\Util;

vendor("Aws.aws-autoloader");

use Think\Log\LogHelper;
use Aws\S3\S3Client;
use Aws\S3\ObjectUploader;

class AwsFile
{
   
    // 桶名称
    const AWS_BUCKET = YOUR_BUCKEY_NAME;

    private static $region = YOUR_REGION;//'cn-north-1'
    private static $s3version = '2006-03-01';
    private static $profile = 'default';
    private static $_s3clients;

    private static function uploadDemo()
    {
   
        //上传到服务器的临时文件
        $file_name = $_FILES['aws_test']['tmp_name'];
        // 获取数据流
        $stream = file_get_contents
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用的是AWS SDK for Java 2.0,您可以使用`S3TransferManager`类来下载S3存储桶中的目录,并将下载的文件流传递给前端。以下是一个示例代码片段: ```java import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.ListObjectsRequest; import software.amazon.awssdk.services.s3.model.ListObjectsResponse; import software.amazon.awssdk.services.s3.model.S3Object; import software.amazon.awssdk.transfer.s3.S3TransferManager; S3Client s3 = S3Client.create(); // 创建S3TransferManager对象 S3TransferManager transferManager = S3TransferManager.builder() .s3Client(s3) .build(); // 创建GetObjectRequest对象 GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("my-bucket") .key("my-folder/") .build(); // 获取目录下的对象列表 ListObjectsRequest listObjectsRequest = ListObjectsRequest.builder() .bucket("my-bucket") .prefix("my-folder/") .build(); ListObjectsResponse listObjectsResponse = s3.listObjects(listObjectsRequest); // 遍历目录下的所有对象并下载 for (S3Object s3Object : listObjectsResponse.contents()) { // 创建GetObjectRequest对象 getObjectRequest = GetObjectRequest.builder() .bucket("my-bucket") .key(s3Object.key()) .build(); // 下载对象并获取ResponseInputStream ResponseInputStream responseInputStream = transferManager.download(getObjectRequest); // 将ResponseInputStream传递给前端 // TODO: 在此处实现将流传递给前端的逻辑 } ``` 在上述示例中,`transferManager.download(getObjectRequest)`方法将目录中的每个对象下载为一个`ResponseInputStream`对象。您可以在此处实现将流传递给前端的逻辑,例如将流写入HTTP响应中返回给前端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值