AWS :: S3 переименовать папку - PullRequest
10 голосов
/ 30 марта 2011

Я вижу, что есть AWS::S3::S3Object.rename, но я не могу сделать это с папками :

AWS::S3::Base.establish_connection!(
 :access_key_id     => APP_CONFIG[:s3_access_key_id],
 :secret_access_key => APP_CONFIG[:s3_secret_access_key]
)
AWS::S3::S3Object.rename(
 "assets/old_name_folder",
 "assets/new_name_folder",
 APP_CONFIG[:s3_bucket]
)

old_name_folder содержит файлы и папки, и я хочу, чтобы переименование учитывало это.

Я получаю: AWS::S3::NoSuchKey (The specified key does not exist.)

Я не знаю, делаю ли я что-то неправильно или просто невозможно переименовать папки s3 .

1 Ответ

27 голосов
/ 30 марта 2011

Документация для AWS :: S3 объясняет это довольно хорошо. При хранении файлов на s3 нет таких вещей как папки. Есть ведро (ваше APP_CONFIG[:s3_bucket] предположительно), и есть объекты. Вот и все. Там нет папок. Один из ваших объектов может быть назван /files/public/system/whatever/derp.jpg - но там нет папок, только объект с именем, похожим на путь, а затем значение объекта (фактический файл, находящийся в этом месте).

Поэтому, чтобы ответить на ваш вопрос, вы не можете переименовывать папки, потому что на s3 такого нет. Вы должны переименовать отдельные объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...