После всех сложных работ по миграции и т. Д. Просто поймите, что если нужно обслуживать контент с использованием CNAME (например, media.abc.com). Название корзины должно начинаться с media.abc.com/S3/amazon.com, чтобы обеспечить его безупречную работу.
Просто поймите, что S3 не позволяет прямое переименование из консоли.
Есть ли способы обойти это?
amazon-web-services
amazon-s3
cname
Карсон Ли
источник
источник
Решение
объяснение
Для S3 нет функциональности переименования сегментов, потому что в S3 нет никаких технических папок, поэтому мы должны обрабатывать каждый файл внутри сегмента.
Приведенный выше код: 1. создаст новое ведро, 2. скопирует файлы и 3. удалит старое ведро. Вот и все.
Если у вас есть много файлов в вашем ведре, и вы беспокоитесь о затратах, то читайте дальше. За кулисами происходит то, что все файлы внутри корзины сначала копируются, а затем удаляются. Это должно стоить незначительную сумму, если у вас есть несколько тысяч файлов. В противном случае проверьте этот ответ, чтобы увидеть, как это повлияет на вас.
пример
В следующем примере мы создаем и заполняем старое ведро, а затем синхронизируем файлы с новым. Проверьте вывод команд, чтобы увидеть, что делает AWS.
источник
--acl bucket-owner-full-control
(как в этом ответе )aws --region ap-southeast-2 s3 mb s3://new-bucket
Возможно, более поздняя версия инструментария AWS CLI предоставила эту
mv
возможность.Я переименовываю сегменты, используя следующую команду:
источник
new-bucket
должен быть создан перед выполнением команды. Кроме того,old-bucket
тогда оно будет пустым, но НЕ будет удалено. Если вы хотите удалить его после передачи всех файлов, используйте следующую команду (без угловых скобок):aws s3api delete-bucket --bucket <old-bucket> --region <region id>
aws s3 mv
фактически копирует и удаляет, поэтому финансовые затраты должны быть одинаковыми (я думаю).