2013-09-05 76 views
3

我正在使用Rackspace的Cloud Files產品,並且我已經成功地將文件放入我的容器,但是,在測試期間,我發現文件沒有設置Content-Type。如何爲Rackspace Cloud文件上的對象設置內容類型?

對於如何使用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); 

任何幫助,將不勝感激。

回答

1

解決了! 問題在於它不是元數據,並且BlobBuilder.PayloadBlobBuilder有一個名爲contentType的方法,您可以在其中設置字符串值。

Blob blob = storage.blobBuilder(file.getName()) 
    .payload(file).contentType(content_type).build(); 
storage.putBlob(container, blob); 
1

CloudFiles實際上會爲您設置內容類型,因此您的代碼中不需要猜測內容類型。訣竅是確保jclouds不發送任何內容類型。

Blob blob = storage.blobBuilder(filename) 
    .payload(file) 
    .contentType("") // allows Cloud Files to determine the content type 
    .build(); 
相關問題