簡體   English   中英

使用 Javascript 將大文件上傳到 Azure Blob

[英]Upload Largefile to Azure Blob using Javascript

我見過幾個將文件傳輸到服務器端然后上傳到 Azure Blob 存儲的示例。
但是我有幾 GB 大小的文件。
有沒有一種方法可以使用客戶端腳本將文件直接上傳到 Azure Blob 存儲,而不是從服務器端上傳以節省時間。

更新我的答案,現在 Windows Azure 存儲支持 CORS 並且 OP 沒有接受任何答案:)。

是的,可以將大文件直接從瀏覽器上傳到 Windows Azure 存儲。 您可能會發現這些步驟很有用:

  1. 首先創建一個Shared Access Signature URL (SAS) ,至少對要在其中上傳文件的 blob 容器具有Write權限。 由於您要上傳大文件,我建議您將 SAS 到期時間保持足夠長。

  2. 接下來在您的存儲帳戶上啟用 CORS。 如果您希望以編程方式進行,您可能會發現這篇文章很有用: http : //gauravmantri.com/2013/12/01/windows-azure-storage-and-cors-lets-have-some-fun/ 如果你想使用一個工具,我公司已經發布了一個Free工具來做到這一點。 您可以閱讀有關此工具的更多信息並從此處下載: http : //blog.cynapta.com/2013/12/cynapta-azure-cors-helper-free-tool-to-manage-cors-rules-for-windows-天藍色斑點存儲/

  3. 我寫了一篇關於將非常大的文件上傳到 blob 存儲的博客文章,您可以在這里閱讀: http : //gauravmantri.com/2013/02/16/uploading-large-files-in-windows-azure-blob- storage-using-shared-access-signature-html-and-javascript/ 在您的存儲帳戶上啟用 CORS 后,博客中提到的代碼應該可以正常工作。

實際上有一種方法,盡管有一些先決條件/警告。
  1. 由於 Blob 存儲尚不支持 CORS,因此您的 HTML 和 JS 文件需要存在於同一個 Blob 存儲帳戶中。 它們應該位於公共 blob 容器中。
  2. 由於您要上傳大文件,因此需要將它們分成小於 4 MB 的塊。 HTML 5 有一個文件 API,可以將文件分成塊,但並非所有瀏覽器都支持此功能。
前段時間我寫了一篇關於使用純 JavaScript 和共享訪問簽名上傳大文件的博客文章。 您可以在此處閱讀該帖子:http://gauravmantri.com/2013/02/16/uploading-large-files-in-windows-azure-blob-storage-using-shared-access-signature-html-and-javascript .

Azure發布了用於瀏覽器的Storage JavaScript客戶端庫。 https://azure.microsoft.com/zh-CN/blog/new-azure-storage-javascript-client-library-for-browsers-preview/

指南和示例在這里: https : //dmrelease.blob.core.windows.net/azurestoragejssample/samples/sample-blob.html

這也是一個使用SAS令牌將Blob上傳到容器的簡單演示。 https://authinazuread.azurewebsites.net/storage.html

這些都是客戶端javascript,因此文件不會傳輸到服務器。 它支持分塊上傳,並且可以很好地處理大型文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM