Подтвердить что ты не робот

AWS:: S3 переименовать папку

Я вижу, что есть 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.

4b9b3361

Ответ 1

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

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