【问题标题】:Uploading files to S3 using AmazonS3Client.java api使用 AmazonS3Client.java api 将文件上传到 S3
【发布时间】:2011-09-25 00:37:48
【问题描述】:

我正在使用 AmazonS3Client.java 将文件从我的应用程序上传到 S3。我正在使用 putObject 方法上传文件

val putObjectRequest = new PutObjectRequest(bucketName, key, inputStream, metadata)
val acl = CannedAccessControlList.Private
putObjectRequest.setCannedAcl(acl)
s3.putObject(putObjectRequest)

这适用于我的 S3 帐户中最顶层的存储桶。现在,假设我想将文件上传到一个子桶,例如 bucketB 里面的 bucketA 。我应该如何为 bucketB 指定存储桶名称?

谢谢

【问题讨论】:

    标签: java scala amazon-s3


    【解决方案1】:

    这确实有点令人惊讶,但在 S3 中没有“子存储桶”这样的东西。所有存储桶都是顶级的。您在 S3 管理控制台或其他 UI 中看到的存储桶内的结构称为“文件夹”,但即使它们也不存在!例如,您不能直接创建或销毁文件夹,也不能为其设置任何属性。文件夹纯粹是一种表示级别的约定,用于查看存储桶中的底层平面对象集。也就是说,将对象拆分为(完全不存在的)文件夹非常容易。只需给他们分层名称,每个级别用“/”分隔。

    val putObjectRequest = new PutObjectRequest(bucketName, topFolderName +"/" + subFolderName+ "/" +key, inputStream, metadata)
    

    【讨论】:

      【解决方案2】:

      尝试使用putObjectRequest.setKey("folder")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-13
        • 2016-02-06
        • 2016-06-23
        • 2017-10-18
        • 2017-12-06
        • 1970-01-01
        • 1970-01-01
        • 2016-04-22
        相关资源
        最近更新 更多