如何使用 AWS CLI ( aws s3
) 查看 S3 存储桶是否已激活版本控制?
我已通过以下方式将大量文件和文件夹上传到 AWS S3 存储桶:
aws s3 cp . s3://mybucket --recursive
如何检查转账是否100%成功?
我当前的计划是将 S3 存储桶从 AWS 区域移动us-west-1
到 AWS 区域us-west-2
,同时保留相同的存储桶名称,这似乎效率非常低,因为它会将整个存储桶复制两次:
# Create new bucket in us-west-2
aws s3 mb s3://temp-bucket --region us-west-2
# Copy files from old to new bucket in us-west-2
aws s3 sync s3://my-bucket s3://temp-bucket --source-region us-west-1 --region us-west-2
# Delete the old bucket in us-west-1
aws s3 rb --force s3://my-bucket
# Create new bucket in us-west-2
aws s3 mb s3://my-bucket --region us-west-2
# Copy files from old to new bucket
aws s3 sync s3://temp-bucket s3://new-bucket
如何有效地将 S3 存储桶移动到新的 AWS 区域,同时保持相同的存储桶名称?
我的 Terraform Git 存储库最终出现一些不可调和的数据错误,我无法推送最近的更改。我将我的提交导出到一个补丁,重新克隆,应用补丁,然后意识到我只是吹走了我所有的本地状态。我使用 AWS CLI 同步整个状态文件树,将其复制到/作为我想要应用的路径的 .terraform/terraform.tfstate,运行 init,现在出现版本错误。
这与最初生成状态文件的运行环境完全相同。这也是唯一应用更改的机器,因此一切都应该保持同步(不是说它与眼前的问题有关,但一旦我们解决了这个问题,它就不会引起任何其他问题)。
我试过运行的命令:
$ terraform init
$ terraform init -upgrade
$ terraform init -upgrade -migrate-state
不可避免的,坚定不移的输出:
Initializing the backend...
╷
│ Error: Failed to load state: Terraform 1.3.9 does not support state version 4, please update.
我似乎无法在任何地方找到任何关于如何从远程状态恢复的帖子或评论,但我猜几乎每个人都必须在某个时候从远程状态恢复。我无法理解。
从远程恢复的过程应该是什么?如果环境、项目配置和项目状态没有改变,为什么我会出现版本问题?
谢谢。任何帮助表示赞赏。
目标:获取文件
- 来自账户 A 中 ca-central-1 中的 Bucket 1
- 到账户 B 中 us-east-1 中的存储桶 2
- 使用具有正确 S3 读写权限的 IAM 角色从第三台机器使用 AWS CLI(假设除非不太可能)
我得到了错误:
ClientError:调用CopyObject操作时出错(AccessDenied):VPC端点不支持跨地域请求
这打破了我关于 S3 工作原理的心智模型。我认为 S3 不在任何 VPC 后面,VPC 端点只是私有子网中机器的备用路由路径(互联网除外)。
但是,如果您使用 CLI 并要求将文件从一个 S3 存储桶传输到另一个存储桶,那么 VPC 为什么会发挥作用呢?
我正在做一个电子商务网站。
我将产品照片存储在 s3 存储桶中。删除产品后,我还会从 s3 存储桶中删除照片。
我启用了S3 存储桶版本控制。我不完全确定版本控制如何工作?
以下是我的假设:
- 如果修改了产品照片,则旧照片与旧版本一起保留(因此旧照片永远不会被删除)
- 如果照片被删除,AWS 仍会保留已删除的照片,但它会被标记为已删除
上述假设是否正确?
现在我想创建一个生命周期规则,将旧照片(已删除或修改后的旧照片)移动到更便宜的存储空间。
从 S3 控制台,我选择管理 > 创建生命周期规则。我可以看到以下选项:
- 在存储类之间移动对象的当前版本
- 在存储类之间移动对象的非当前版本
- 使当前版本的对象过期
- 永久删除对象的非当前版本
- 删除过期的对象删除标记或不完整的分段上传
我不清楚非当前版本是什么意思?
删除的照片是非当前版本吗?如果一张产品照片在很长一段时间内(比如 1 年)保持活跃而没有被修改或删除,那它会不会变成非最新的,因为它已经在存储桶中放置了太久?
我认为我想要的选项是:
上述规则是否会在 30 天后将已删除和修改的照片移至更便宜的存储空间?
我需要为 s3 添加一个 vpc 端点,以便我可以在 lambda 上访问它,但是当我尝试创建端点时,我收到一个警告
警告
当您使用终端节点时,受影响子网中的实例用于访问同一区域中的 AWS 服务的源 IP 地址将是私有 IP 地址,而不是公共 IP 地址。从受影响的子网到使用公有 IP 地址的 AWS 服务的现有连接可能会被丢弃。确保在创建或修改端点时没有运行关键任务。
在这里,我不确定它的确切含义。
我可以公开访问 s3 吗?
目前我使用预签名的 url 将对象放入 s3,我可以在创建 vpc 端点(私有)后继续使用它吗?