2

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

任何帮助,将不胜感激。

4

2 回答 2

1

CloudFiles 实际上会为您设置内容类型,因此无需在您的代码中猜测内容类型。诀窍是确保 jclouds 不发送任何内容类型。

Blob blob = storage.blobBuilder(filename)
    .payload(file)
    .contentType("") // allows Cloud Files to determine the content type
    .build();
于 2013-09-07T02:00:07.000 回答
0

解决了!问题在于它不是元数据,并且BlobBuilder.PayloadBlobBuilder有一个方法称为contentType,您可以在其中设置字符串值。

Blob blob = storage.blobBuilder(file.getName())
    .payload(file).contentType(content_type).build();
storage.putBlob(container, blob);
于 2013-09-05T15:31:39.570 回答