Fog 및 Amazon S3와 함께 비디오 및 이미지 파일을 관리하고 있습니다. 나는 내 파일에 대해 content_type을 설정하는 데 많은 어려움을 겪고있다.안개 저장 파일의 content_type을 s3에 설정하십시오.
콘솔에서 작업 할 때 각 파일의 content_type을 개별적으로 업데이트 한 다음 저장을 실행할 수 있습니다. 그러나 특정 디렉토리 내의 모든 파일에 대한 업데이트를 실행하려고하면 오류가 발생하지 않지만 아무것도 업데이트되지 않습니다. 저는 여러 가지 다른 방법을 실행했습니다. 모두 같은 기본 아이디어를 가지고 있으며, 모두 "저장되었습니다!"라고 인쇄했습니다. 파일이 저장되면. 메소드가 제대로 실행되고 "saved!"가 출력되지만, 다시 돌아가서 파일을 검사하면 content_type은 여전히 nil입니다. 나는이 작품을 저장, 각각의 파일을 업데이트를 통해 개별적으로 갈 때, 또한
directory.files.each do |f|
case f.key.split(".").last
when "jpg"
f.content_type = "image/jpeg"
puts "saved!" if f.save
when "mov"
f.content_type = "video/quicktime"
puts "saved!" if f.save
end
end
과 콘텐츠 _가 업데이트됩니다,하지만 데이터는 유지되지 않습니다
는 여기에 내가 뭘하는지의 예입니다. 예를 들어
: 나는 AWS에서 파일을 확인 갈 때
file = directory.files.first
file.content_type = 'video/quicktime'
file.save # returns true
file.content_type # returns 'video/quicktime'
것은 그러나, 콘텐츠 유형은 아직 전무하다.
Fog s3 파일에서 content_type을 업데이트하는 방법이 더 좋습니까? 나는 이것이 틀린 길로 가야만하는 것처럼 느껴진다. 업데이트
:
directory.files.each do |f|
content_type = case f.key.split(".").last
when "jpg"
"image/jpeg"
when "mov"
"video/quicktime"
end
puts "copied!" if f.copy(f.directory.key, f.key, { 'Content-Type' => content_type })
end
나는 오류가 있어요 : 파일 #을 사용하여 시도 이 방법은 복사 그냥 메타 데이터 (그리고 신체/콘텐츠 자체를) 업데이트하는 경우
Excon::Errors::BadRequest: Expected(200) <=> Actual(400 Bad Request)
from /Users/marybethlee/.rvm/gems/[email protected]/gems/excon-0.22.1/lib/excon/middlewares/expects.rb:6:in `response_call'
from /Users/marybethlee/.rvm/gems/[email protected]/gems/excon-0.22.1/lib/excon/connection.rb:355:in `response'
from /Users/marybethlee/.rvm/gems/[email protected]/gems/excon-0.22.1/lib/excon/connection.rb:249:in `request'
from /Users/marybethlee/.rvm/gems/[email protected]/gems/fog-1.11.1/lib/fog/core/connection.rb:21:in `request'
from /Users/marybethlee/.rvm/gems/[email protected]/gems/fog-1.11.1/lib/fog/aws/storage.rb:506:in `request'
from /Users/marybethlee/.rvm/gems/[email protected]/gems/fog-1.11.1/lib/fog/aws/requests/storage/copy_object.rb:33:in `copy_object'
from /Users/marybethlee/.rvm/gems/[email protected]/gems/fog-1.11.1/lib/fog/aws/models/storage/file.rb:93:in `copy'
from (irb):14
from /Users/marybethlee/.rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>'
그래서 난 당신이 무엇을 제안했지만 오류가있어 : 를'Excon :: 오류 :: BadRequest : 예상 실제 (200) <=> (400 잘못된 요청)이' 내가 오류를 포함하도록 내 원래의 게시물을 수정할 수 있습니다, 개인 업데이트로 의미 한 것의 예뿐만 아니라 – oolong
업데이트 주셔서 감사합니다. 적어도 하나의 문제가 발견되었습니다 (기본적으로 이전 메타 데이터를 사용하고 복사 요청에서 전달 된 내용을 무시하므로 'REPLACE'를 지정해야한다는 것을 간과했습니다). 또한 오류에 대해 좀 더 자세하게 설명하면 편리 할 것입니다. 안개 버전을 업데이트하고 다시 시도해 주시겠습니까? 나는 그것이 그것을 고칠 것이라는 것을 모른다, 그러나 적어도 조금 더 상세한 오류 메시지를 제공해야한다. 감사! – geemus
아하! 옙 지정은 오류를 수정했지만 여전히 이전에 실행했던 것과 같은 문제입니다. 루프를 통해 복사 된 내용이 인쇄되지만 콘텐츠 유형은 여전히 모든 파일에 대해 nil이며 개별적으로 업데이트하면 제대로 작동하는 것처럼 보일 수 있지만 aws가되지는 않습니다. – oolong