我有2个不同的存储桶,具有不同的AccessKey和Secrets。因此,我创建了2个不同的s3Client对象与它们进行交互。
我正在尝试弄清楚如何使用CopyObjectRequest将文件从存储桶A(源)复制到存储桶B(目标)。
该CopyObjectRequest类的SourceBucket属性是存储桶的简单字符串名称。
答案 0 :(得分:1)
除非您拥有一组具有适当权限的凭据,才能对两个存储桶执行所有所需的操作,否则无法使用CopyObjectRequest
。
这使用了服务API的PUT Object Copy
操作,该操作是发送到目标存储桶的请求,它指示目标存储桶直接从源存储桶中获取对象,该用户使用签名该存储桶的用户的身份向目标存储桶请求并存储副本...避免了下载和重新上传对象的麻烦。此模型中不支持第二组凭据,因为不会发生与源存储桶的直接交互-与源存储桶的交互发生在S3内部,数据传输也发生在S3内部,即使跨区域也是如此。
使用两组凭据的唯一选项是下载,然后上传。