2014-02-14 4 views
0

Я пытаюсь сбросить content_type для всех mp3 в ковше, используя копию (как указано в Set content_type of Fog storage files on s3).Установить Content_Type с Fog на S3 без перезаписывания других метаданных

Однако это перезаписывает любые существующие значения для элемента, в частности значения хранилища_класса и владельца. Эти значения одинаковы для всех файлов в ведре, поэтому я попытался установить их как параметры. Однако, когда я запрашиваю владельца файла после завершения копирования, я получаю нуль.

connection.directories.get('my_bucket').files.each do |f| 
    content_type = case f.key.split(".").last 
     when "mp3" 
      "audio/mpeg" 
     when "ogg" 
      "audio/ogg" 
     end 

    options = { 
     'Content-Type' => content_type, 
     'Owner' => '{:display_name=>"myadmin", :id=>"myadminid"}', 
     'Storage-Class' => 'STANDARD', 
     'x-amz-metadata-directive' => 'REPLACE' 
    } 

    puts directory.files.get(f.key) if f.copy(f.directory.key, f.key, options) 
end 

ответ

1

Я думаю, что это может быть так, как указаны параметры. Я думаю, что, возможно, вам необходимо указать класс хранения, например, как:

x-amz-storage-class вместо Storage-Class

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

Надеюсь, что это поможет.

+0

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

+0

Да, нуль владелец вполне может быть ошибкой. Но звучит так, будто в настоящее время не стоит беспокоиться о слишком большом количестве, если он не блокирует вас. – geemus

Смежные вопросы