基本上我有这个代码使用Jclouds将javascripts和其他内容上传到Rackspace:
SwiftObject obj = cloudFilesClient.newSwiftObject();
obj.getInfo().setName(name);
obj.getInfo().setContentType(contentType);
obj.setPayload(payloadFile);
cloudFilesClient.putObject(container, obj);
我注意到Chrome抱怨使用text/plain
传输脚本,因此开始调查。 curl -I
报告:Content-Type: application/unknown
。
我搜索了很多并试图找到一些线索,我试过了:
application/javascript
(正确)text/javascript
(错误,但很常见)obj.getAllHeaders().put("Content-Type", contentType);
当我们以前使用基本HTTP上传时,这只是在没有手动设置任何内容的情况下工作。
答案 0 :(得分:4)
最后终于通过挖掘源代码来解决这个问题 - 这很有效:
FilePayload payload = new FilePayload(uploadableFile.localPath.toFile());
payload.getContentMetadata().setContentType(uploadableFile.contentType);
obj.setPayload(payload);
如果其他人在将来寻找这个,请发布Q& A。