一部の S3 オブジェクトが S3 バケットにアップロードされた後、そのメタデータ フィールドを更新するスクリプトを実行しています。初期化時に、ファイル名を確認して content-type を設定しています。
def save_to_amazon(file, s3_object, file_name, meta_path)
puts "uploaded #{file} to Amazon S3"
content_type = set_content_type(file_name)
s3_object.write(file.get_input_stream.read, :metadata => { :folders => meta_path}, :content_type => content_type)
end
この時点で、S3 コンテンツ タイプはこれらのオブジェクトに対して正常に機能します。後でメタデータを更新すると、問題が発生します。私はこのようなものを実行します:
s3_object.metadata['folders'] = "some string"
この時点でs3_objects.content_type
、メタデータの更新後に実行すると、空の文字列が返されます。
s3_object.content_type =
利用できません。
Rdocを読んでわかる限り、S3 ファイルをアップロードした後にコンテンツ タイプを割り当てる方法はありません。次のようなメタデータメソッドを使用してみました
s3.object.metadata['content_type'] = "some string"
s3.object.metadata['content-type'] = "some string"
これらはどちらも、オブジェクトの MIME タイプを更新する代わりに、新しいカスタム メタデータ属性を割り当てているようです。
これを設定する方法はありますか、それともファイルを完全に再アップロードする必要がありますか?