我正在运行一个脚本,在我的一些 S3 对象已上传到 S3 存储桶后更新元数据字段。在初始化时,我通过检查文件名来设置内容类型。
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 类型。
有没有办法设置它,还是我需要再次完全重新上传文件?