我正在尝试使用副本重置存储桶中所有mp3的content_type(如Set content_type of Fog storage files on s3中所述)。
但是,这会覆盖项目的任何现有值,尤其是storage_class和owner值。这些值对于存储桶中的所有文件都是相同的,因此我尝试将它们设置为选项。但是,当我在复制完成后查询文件的所有者时,我得到nil。
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
答案 0 :(得分:1)
我认为可能只是如何指定选项。我想也许您需要指定存储类,例如:
x-amz-storage-class
代替Storage-Class
我不确定所有者,但我认为这只是由于谁创建了对象(所以在副本的情况下它会匹配谁可能会运行复制操作)。我不确定这是否可以被覆盖。
希望有所帮助。