2014-02-14 3 views
0

복사를 사용하여 버킷의 모든 mp3에 대해 content_type을 재설정하려고합니다 (Set content_type of Fog storage files on s3에 설명 된대로).다른 메타 데이터를 덮어 쓰지 않고 S3에 안개가있는 Content_Type을 설정하십시오.

그러나 항목의 기존 값, 특히 storage_class 및 owner 값을 덮어 씁니다. 이 값은 버킷의 모든 파일에 대해 동일하므로 옵션으로 설정하려고했습니다. 그러나 복사가 완료된 후 파일의 소유자를 쿼리 할 때 나는 아무 것도 얻지 못합니다.

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

관련 문제