如何在Rackspace云文件上设置对象的内容类型?

时间:2013-09-05 14:12:03

标签: java rackspace-cloud

我正在使用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);

任何帮助都将不胜感激。

2 个答案:

答案 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);