Как переименовать файл с туманом?

У меня есть приложение для рельсов 3.2. Использование тумана для хранения файлов в S3.

Я хотел бы написать скрипт для переименования всех загруженных файлов. Кажется, я не могу найти документацию по туману в этой области.

Возможно ли это с туманом? Мне нужен еще один драгоценный камень?


person BM5k    schedule 20.12.2012    source источник


Ответы (2)


Плохая новость: вам нужно получить/создать/уничтожить

foo = bucket.files.get 'foo'
bar = bucket.files.create :key => 'bar', :body => foo.body
foo.destroy

Хорошей новостью является то, что если вы делаете это из ec2 в том же регионе, это, вероятно, произойдет так же быстро, как переименование файла на вашем локальном компьютере.

person pguardiario    schedule 21.12.2012

Как насчет копирования, как указано в этом сообщении? ср. источники запросов тумана и исходники моделей тумана.

Вы должны уметь:

storage.copy_object('old_bucket', 'old_filename', 'new_bucket', 'new_filename')

or

file.copy('new_bucket', 'new_filename')

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

person Dirty Henry    schedule 29.07.2013
comment
В приведенном выше примере storage.copy_object параметры указаны не по порядку. Должно быть old_bucket, old_filename, new_bucket, new_filename в соответствии с источником по адресу github.com/fog/fog/blob/master/lib/fog/aws/requests/storage/ - person Melinda Weathers; 28.02.2014
comment
@MelindaWeathers, учтено в ответе. - person Dirty Henry; 13.08.2014
comment
В этом случае туман воспользуется преимуществами команды S3 copy, и вам не нужно будет передавать содержимое файла в вашу локальную систему. Намного быстрее. - person jwadsack; 08.09.2015