【问题标题】:S3 data transfer from one account to anotherS3 数据从一个帐户传输到另一个帐户
【发布时间】:2018-01-08 14:24:53
【问题描述】:

我可能会再次问这个问题,但需要一些帮助,

我有一个来自客户端的 s3 存储桶详细信息(有用户 ID、密码、访问密钥、密钥)。我被要求将其中的所有数据放入我们的 S3 存储桶中。

似乎有很多关于如何完成的数据。但对我来说,问题是我无权更改任何政策或任何事情。我有一个 s3 存储桶和一个 ec2 机器。请指导我如何从上述信息中获取这些数据到我的 s3 存储桶

【问题讨论】:

  • 您是否有权访问源存储桶?比如可以使用aws s3 ls查看内容吗?
  • 如果您有源 s3 存储桶的用户名/密码,并且如果您的用户在 s3 上具有管理员权限,您应该能够follow this guide

标签: amazon-web-services amazon-s3 amazon-ec2 aws-cli


【解决方案1】:

如果您有 aws-cli ,那么您可以使用

列出所有文件
aws s3 ls s3://your-bucket-name

并使用将文件从一个存储桶复制到另一个存储桶

aws s3 sync s3://source-bucket s3://target-bucket

谢谢

【讨论】:

  • 我是否应该没有任何设置来定位源 S3 存储桶或如何连接到源 s3 存储桶?请建议
  • 我尝试运行命令,但不断收到以下错误:无法连接到端点 URL:
  • @RaghunandanSk:您可以发布您的命令以及您在问题中遇到的完整错误吗?
  • @hansaplast [ec2-user@ip-as-31-1assazz ~]$ aws s3 ls 调用 ListBuckets 操作时发生错误 (AccessDenied):Access Denied 这是我们要说的错误
【解决方案2】:

你也可以使用

s3cmd cp s3://source-bucket/ s3://target-bucket/

或者如果您的存储桶位于不同的区域,您可以从源存储桶启用跨区域复制,并将您的存储桶指定为目标存储桶。


此外,使用跨区域复制时需要注意的要点是:

  1. 应启用存储桶的版本控制。

  2. 应启用源存储桶和目标存储桶的版本控制。

  3. 此功能只会在源存储桶和目标存储桶之间复制新的或更新的文件。如果源存储桶和目标存储桶之间已经存在任何现有文件,则不会同步。

如果您仍需要将该文件从源存储桶再次复制到目标存储桶,则需要使用 aws s3 cp s3://source-bucket/ s3://target-bucket 命令。

【讨论】:

  • 你为什么说“应该启用版本控制”?
  • 对不起,我已经更正了我的帖子。跨区域复制(而不是同步)需要启用版本。我很抱歉,感谢您的指正..
【解决方案3】:

由于这是 2 个完全不同的 aws 帐户,AFAIK 您不能使用 aws cp,因为您需要两个不同的凭据,一个用于源,另一个用于目标。注意事项:这样您将丢失所有元数据(例如创建数据、访问权限、标签……)!

  1. 运行aws configure 并输入您的客户端的访问密钥和密钥
  2. 在一个空的本地目录中运行aws s3 cp --recursive s3://client-s3-bucket .
  3. 再次运行 aws configure 并输入您自己的 aws 凭据(目标)
  4. 从同一目录运行aws s3 cp --recursive . s3://your-new-s3-bucket

【讨论】:

  • @Michael-sqlbot 对,谢谢!忘了那个了。将其添加到答案中
猜你喜欢
  • 2022-11-15
  • 2011-07-27
  • 2020-01-23
  • 1970-01-01
  • 2011-09-01
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 2016-03-26
相关资源
最近更新 更多