Rackspace云文件在使用Jclouds上传时以mime类型返回"application/unknown"



基本上我有这样的代码,它使用Jclouds:将javascript和其他内容上传到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上传时,这完全不需要手动设置任何内容。

最终通过挖掘源代码找到了它——这很有效:

FilePayload payload = new FilePayload(uploadableFile.localPath.toFile());
payload.getContentMetadata().setContentType(uploadableFile.contentType);
obj.setPayload(payload);

如果有其他人正在寻找这个在未来,张贴问答;A.

相关内容

  • 没有找到相关文章

最新更新