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