0
我試圖直接從流中上傳blob,因爲我不知道流的長度,所以我決定嘗試使用this answer。使用BlobOutputStream在Azure上傳blob
這不起作用,即使它從流中讀取並且不會拋出任何異常,但內容未上傳到我的容器。
我從文件上傳沒有問題,它只發生在從流上傳時。
這是我的代碼,我增加了一些奏,以檢查它是否在讀什麼或不但是這不是問題:
try {
CloudBlockBlob blob = PublicContainer.getBlockBlobReference(externalFileName);
if (externalFileName.endsWith(".tmp")) {
blob.getProperties().setContentType("image/jpeg");
}
BlobOutputStream blobOutputStream = blob.openOutputStream();
int next = input.read();
while (next != -1) {
System.err.println("writes");
blobOutputStream.write(next);
next = input.read();
}
blobOutputStream.close();
return blob.getUri().toString();
} catch (Exception usex) {
System.err.println("ERROR " + usex.getMessage());
return "";
}
它不會失敗,但它不工作。
是否有另一種方法呢?或者我錯過了什麼?
更新:我一直在檢查,我認爲問題是與InputStream本身,但我不知道爲什麼,因爲相同的流將工作得很好,如果我使用它上傳到Amazon S3的實例
謝謝,我會試着找出問題所在,因爲它似乎可以很好地運作 – moondaisy