亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Azure 存儲 Blob:上傳的 CSV 文件顯示零字節

Azure 存儲 Blob:上傳的 CSV 文件顯示零字節

撒科打諢 2023-06-21 13:10:06
我在標題中遇到的這個問題與之前在這里提出的問題非常相似(Azure 存儲:上傳的文件大小為零字節),但它是針對 .NET 的,我的 Java 場景的上下文是我正在上傳小尺寸 CSV文件(每個文件大約少于 5 Kb)。此外,API 代碼使用我正在使用的最新版本的 Azure API,與另一個問題使用的 2010 版本形成對比。我不知道我錯過了哪里,但另一種選擇是在文件存儲中進行,但當然,我的一些同行推薦了 blob 方法。到目前為止,我的代碼主要基于將文件作為 blob 塊上傳到 Azure 示例 git [頁面] 。我已經完成了容器設置和文件重命名步驟,這不是問題,但上傳后,我的 Azure 域上的 blob 存儲容器中的文件大小顯示 0 字節。我嘗試交替將文件轉換為 FileInputStream 并將其作為流上傳,但它仍然以相同的方式產生。fileName=event.getFilename(); //fileName is e.g eod1234.csvString tempdir = System.getProperty("java.io.tmpdir");file= new File(tempdir+File.separator+fileName); //try {? ? PipedOutputStream pos = new PipedOutputStream();? ? stream= new PipedInputStream(pos);? ? buffer = new byte[stream.available()];? ? stream.read(buffer);? ? FileInputStream fils = new FileInputStream(file);? ? int content = 0;? ? while((content = fils.read()) != -1){? ? ? ? System.out.println((char)content);? ? }? ? //Outputstream was written as a test previously but didn't work? ? OutputStream outStream = new FileOutputStream(file);? ? outStream.write(buffer);? ? outStream.close();? ? // container name is "testing1"? ? ? ? ? ??? ? CloudBlockBlob blob = container.getBlockBlobReference(fileName);? ? if(fileName.length() > 0){? ? ? ?blob.upload(fils,file.length()); //this is testing with fileInputStream? ? ? ?blob.uploadFromFile(fileName); //preferred, just upload from file? ? }}? ? ? ? ? ??沒有顯示任何錯誤消息,只是我們知道該文件涉及 blob 存儲并顯示大小為 0 字節。這是一個僅上傳 CSV 格式文件的單向過程。在 blob 容器中,它應該顯示這些上傳的文件,每個文件的大小為 1-5 KB。
查看完整描述

3 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

而不是blob.uploadFromFile(fileName);你應該使用blob.uploadFromFile(file.getAbsolutePath());因為uploadFromFile方法需要絕對路徑。而且你不需要blob.upload(fils,file.length());.

查看完整回答
反對 回復 2023-06-21
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

是由于 Vaadin 中的上傳組件的行為與平常不同 。CloudBlockBlob 或 BlobContainerUrl 方法均有效。

開箱即用的 Upload 組件需要手動將 FileOutputStream 實現為臨時對象,這與隨處可見的常見 servlet 對象不同。由于時間有限,我使用了他們的插件之一 EasyUpload,因為它已將 Viritin UploadFileHandler 合并到其中,而不是從頭開始弄清楚如何流式傳輸對象。如果有更多時間,我肯定會在我的沙盒工作區中試用 MultiFileUpload 插件,它有更多有趣的東西。


查看完整回答
反對 回復 2023-06-21
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

我在處理(從多部分文件復制的)文件時遇到了同樣的問題,.png我正在這樣做:

File file = new File(multipartFile.getOriginalFilename());

Azure 上的 blob 是 0bytes 但是當我改成這個時:

File file = new File("C://uploads//"+multipartFile.getOriginalFilename());

它開始正確保存文件


查看完整回答
反對 回復 2023-06-21
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號