File cloud Rackspace mengembalikan aplikasi/tidak dikenal sebagai tipe mime saat diunggah dengan Jclouds

Pada dasarnya saya memiliki kode ini yang mengunggah javascript dan konten lainnya ke Rackspace menggunakan Jclouds:

SwiftObject obj = cloudFilesClient.newSwiftObject();
obj.getInfo().setName(name);
obj.getInfo().setContentType(contentType);
obj.setPayload(payloadFile);
cloudFilesClient.putObject(container, obj);

Saya perhatikan bahwa Chrome mengeluh tentang skrip yang ditransfer dengan text/plain dan mulai menyelidikinya. curl -I laporkan saja: Content-Type: application/unknown.

Saya sudah banyak mencari di Google dan mencoba menemukan beberapa petunjuk, dan saya sudah mencoba:

  • tidak mengatur tipe konten sama sekali
  • menyetel string kosong (menemukan rumor tentang itu di suatu tempat)
  • pengaturan ke application/javascript (benar)
  • pengaturan ke text/javascript (salah, tetapi umum)
  • obj.getAllHeaders().put("Content-Type", contentType);

Saat kami mengunggah dengan HTTP dasar sebelumnya, ini hanya berfungsi tanpa mengatur apa pun secara manual sama sekali.


person Stoffe    schedule 03.12.2013    source sumber


Jawaban (1)


Akhirnya akhirnya berhasil mengetahuinya dengan menggali kode sumber - ini berfungsi:

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

Jika ada orang lain yang mencari ini di masa mendatang, posting Tanya Jawab.

person Stoffe    schedule 03.12.2013
comment
apakah Anda memiliki versi JClouds yang berfungsi untuk memperbaikinya atau contoh cara memperbaiki versi saya. Terima kasih. - person Josh; 09.05.2016
comment
@Josh contoh dalam jawabannya adalah apa yang berhasil bagi saya pada saat menulisnya. Beberapa saat kemudian, kami membuang Rackspace karena alasan lain sehingga saya tidak lagi mengetahuinya. Maaf! - person Stoffe; 10.05.2016