Car*_*Lee 140 cname amazon-s3 amazon-web-services
经过所有艰难的迁移等工作后,只需要意识到如果需要使用CNAME(例如media.abc.com)来提供内容.存储桶名称需要从media.abc.com/S3/amazon.com开始,以确保其完美运行.
只是意识到S3不允许从控制台直接重命名.
有没有办法解决这个问题?
dua*_*ty_ 222
aws s3 mb s3://[new-bucket]
aws s3 sync s3://[old-bucket] s3://[new-bucket]
aws s3 rb --force s3://[old-bucket]
Run Code Online (Sandbox Code Playgroud)
S3没有重命名存储桶功能,因为S3中技术上没有文件夹,所以我们必须处理存储桶中的每个文件.
上面的代码将1.创建一个新的存储桶,2.复制文件和3.删除旧存储桶.而已.
如果您的存储桶中有大量文件并且您担心成本问题,请继续阅读.在幕后发生的事情是,存储桶中的所有文件首先被复制然后被删除.如果您有几千个文件,它应该花费不大的金额.否则请检查此答案,看看这会对您产生什么影响.
在下面的示例中,我们创建并填充旧存储桶,然后将文件同步到新存储桶.检查命令的输出以查看AWS的功能.
> # bucket suffix so we keep it unique
> suffix="ieXiy2" # used `pwgen -1 -6` to get this
>
> # populate old bucket
> echo "asdf" > asdf.txt
> echo "yxcv" > yxcv.txt
> aws s3 mb s3://old-bucket-$suffix
make_bucket: old-bucket-ieXiy2
> aws s3 cp asdf.txt s3://old-bucket-$suffix/asdf.txt
upload: ./asdf.txt to s3://old-bucket-ieXiy2/asdf.txt
> aws s3 cp yxcv.txt s3://old-bucket-$suffix/yxcv.txt
upload: ./yxcv.txt to s3://old-bucket-ieXiy2/yxcv.txt
>
> # "rename" to new bucket
> aws s3 mb s3://new-bucket-$suffix
make_bucket: new-bucket-ieXiy2
> aws s3 sync s3://old-bucket-$suffix s3://new-bucket-$suffix
copy: s3://old-bucket-ieXiy2/yxcv.txt to s3://new-bucket-ieXiy2/yxcv.txt
copy: s3://old-bucket-ieXiy2/asdf.txt to s3://new-bucket-ieXiy2/asdf.txt
> aws s3 rb --force s3://old-bucket-$suffix
delete: s3://old-bucket-ieXiy2/asdf.txt
delete: s3://old-bucket-ieXiy2/yxcv.txt
remove_bucket: old-bucket-ieXiy2
Run Code Online (Sandbox Code Playgroud)
lif*_*cer 98
我认为唯一的方法是创建一个具有正确名称的新存储桶,然后将所有对象从旧存储桶复制到新存储桶.您可以使用Aws CLI执行此操作.
Ric*_*ing 31
可能是AWS CLI工具包的更高版本提供了该mv选项.
$ aws --version
aws-cli/1.15.30 Python/3.6.5 Darwin/17.6.0 botocore/1.10.30
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令重命名存储桶:
aws s3 mv s3://old-bucket s3://new-bucket --recursive
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79299 次 |
| 最近记录: |