我正在使用Rackspace的Cloud Files产品,并且我已经成功地将文件放到我的容器中,但是,在测试期间我发现文件没有设置Content-Type。
关于如何使用Java SDK设置内容类型的示例,我看起来很高,但是没有运气。
我尝试过:
Map<String, String> metaData = new HashMap<String, String>();
metaData.put("mime-type", content_type);
// or metaData.put("Content-Type", content_type);
Blob blob = storage.blobBuilder(file.getName())
.payload(file).userMetadata(metaData).build();
storage.putBlob(container, blob);
任何帮助都将不胜感激。
答案 0 :(得分:1)
CloudFiles实际上会为您设置内容类型,因此您的代码中不需要内容类型猜测。诀窍是确保jclouds不发送任何内容类型。
Blob blob = storage.blobBuilder(filename)
.payload(file)
.contentType("") // allows Cloud Files to determine the content type
.build();
答案 1 :(得分:0)
解决了!
问题是它不是元数据,而BlobBuilder.PayloadBlobBuilder有一个名为contentType
的方法,您可以在其中设置字符串值。
Blob blob = storage.blobBuilder(file.getName())
.payload(file).contentType(content_type).build();
storage.putBlob(container, blob);