java - 如何使用 RestS3Service 克隆 Amazon S3 中的对象

标签 java groovy amazon-s3 clone

所以我尝试克隆我的 S3 (Amazon S3) 帐户上的文件夹中的对象。但我想知道是否有一种方法可以做到这一点,而不必先将文件写入本地系统,然后将该文件上传回 S3?

最终我希望它能够完全递归地克隆给定存储桶中的文件夹和对象,但现在我一直坚持让它有效地克隆。

假设存储桶路径是 images.example.com/products/prodSku 在该 prodSku 文件夹中,我有一堆图像,我想将其复制到新文件夹

这是我到目前为止所拥有的。

(注意:这是用groovy编写的,但是如果你了解java,那是一样的)

try{

    def s3os = restService.listObjects(bucket_name, sourcePrefix, null)
    def s3o
    for(def i in s3os){
        s3o = get(bucket_name, i.key)
        // i want to be able to do something like this, just putting the input stream
        // back into s3. but i can't. from what i know now, i have to write the
        // dataInputStream into a file locally, then use that file to create a new S3Object
        // which is placed as the second argument in the putObject method
        restService.putObject(destinationBucketName, s3o.dataInputStream)
    }
}catch(S3ServiceException e)
{

    println e
}

第一次发帖,格式有点乱,抱歉。

但任何帮助将不胜感激!

谢谢!

最佳答案

不确定 JetS3t API,但是 AWS SDK for Java确实提供了一个简单的copyObject方法

关于java - 如何使用 RestS3Service 克隆 Amazon S3 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280030/

相关文章:

java - 连接 Oracle DB 容器和 Java 应用程序容器 (Docker)

c# - c# RSACryptoServiceProvider 中的指数和模数是什么类型的数据?

javascript - s3 javascript 创建存储桶

java - Java中的哪些操作被认为是原子的?

java - 数组实例化为 `{...}`

java - 如何选择正确的协议(protocol)和网络连接来使用ActiveMQ?

grails - artifact.clazz和bean.class之间的区别

grails - grails 中的字符串 ID - 到底是如何做到的?

amazon-web-services - Electron-Updater和AWS S3存储桶策略-: HttpError: 403 Forbidden错误

javascript - 使用 Lambda 将图像从表单数据上传到 S3