[英]copy files from AWS S3 bucket in one account to bucket in another account in terraform/python
[英]Copy files from one AWS account's S3 bucket to another AWS account's S3 bucket + using NodeJS
如何使用 NodeJS将源 AWS 帐户的 S3 存储桶中的文件复制到位于不同 AWS 帐户上的目标 S3 存储桶中?
即,从AWS 账户 A中的 S3 到AWS 账户 B中的 S3
您是否尝试过copyObject方法?
使用Bucket
和Key
指示目标, CopySource
指示源 object。确保您的 creds 具有读取源 object 和写入目标 object 的权限。
理想情况下,如果您知道,可以通过在ExpectedBucketOwner
中声明目标存储桶的 AWS 账户 ID 来提高副本的安全性。
这是一个未经测试的例子:
const s3 = new AWS.S3();
const params = {
Bucket: 'destbucket',
CopySource: 'srcbucket/srcfolder/file.txt',
Key: 'destfolder/file.txt'
};
const result = await s3.copyObject(params).promise();
如果您需要担任允许访问两个存储桶的角色,请使用此代码的某些变体来获取 STS 凭证和 S3 客户端 object:
const sts = new AWS.STS({ region: 'us-west-2' });
const role_params = {
RoleArn: 'arn:aws:iam::1234567890:role/yourrole',
RoleSessionName: 'optional-name',
ExternalId: 'some-optional-value',
DurationSeconds: 3600,
};
const res = await sts.assumeRole(role_params).promise();
const cred_params = {
accessKeyId: res.Credentials.AccessKeyId,
secretAccessKey: res.Credentials.SecretAccessKey,
sessionToken: res.Credentials.SessionToken,
};
const s3 = await new AWS.S3(cred_params);
要了解跨账户 S3 访问所需的权限,请参阅如何提供对 Amazon S3 存储桶中对象的跨账户访问?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.