首页 > 解决方案 > 未捕获(承诺):RestError:文件上传到 Blob 存储后发送请求失败

问题描述

我正在使用 @azure/storage-blob 包将文件上传到 Azure blob。

这是我将文件上传到 Blob 的代码:

public uploadFilesToAzureBlob(sasToken: string, file: any, id: string): Observable<any> {
        const blobServiceClient = new BlobServiceClient(sasToken);
        const containerClient = blobServiceClient.getContainerClient(id);
    
        if (!containerClient.exists()) {
          containerClient.create();
        }
    
        const client = containerClient.getBlockBlobClient(file.name);
    
        // 10MB block size and 20 concurrency
        const response = client.uploadBrowserData(file, {
          blockSize: 10485760,
          concurrency: 20,
          blobHTTPHeaders: {
            blobContentType: file.type
          }
        });
    
        return from(response).pipe(map((res: any) => res), catchError(this.handleError));   } 
  



                                                                                                                            

上传文件 5-10 秒后出现以下错误,尽管文件/s 已成功上传...

有什么建议吗?

错误 #1

ERROR Error: Uncaught (in promise): RestError: Failed to send request to https://AzureBlobStorage/Files/FBEB2AE9-B14C-4C78-8F4A-0CE4FF9DF6F5/EDB62F71-6D1C-4347-B277-0D0BF98B9A1E?sv=2017-04-17&sr=c&sig=AnlnrIFDingda21arBI1mbA0yu2mqtAYehDEWNB5tA4%3D&se=2020-09-19T08%3A07%3A49Z&sp=rwdl&restype=container&_=9311731167285
RestError: Failed to send request to https://AzureBlobStorage/Files/FBEB2AE9-B14C-4C78-8F4A-0CE4FF9DF6F5/EDB62F71-6D1C-4347-B277-0D0BF98B9A1E?sv=2017-04-1
    7&sr=c&sig=AnlnrIFDingda21arBI1mbA0yu2mqtAYehDEWNB5tA4%3D&se=2020-09-19T08%3A07%3A49Z&sp=rwdl&restype=container&_=9311731167285
at new RestError (restError.js:10)
at XMLHttpRequest. (xhrHttpClient.js:142)
at ZoneDelegate.invokeTask (zone-evergreen.js:399)
at Object.onInvokeTask (core.js:41344)
at ZoneDelegate.invokeTask (zone-evergreen.js:398)
at Zone.runTask (zone-evergreen.js:167)
at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:480)
at invokeTask (zone-evergreen.js:1621)
at XMLHttpRequest.globalZoneAwareCallback (zone-evergreen.js:1647)
at resolvePromise (zone-evergreen.js:798)
at zone-evergreen.js:705
at rejected (tslib.es6.js:72)
at ZoneDelegate.invoke (zone-evergreen.js:364)
at Object.onInvoke (core.js:41366)
at ZoneDelegate.invoke (zone-evergreen.js:363)
at Zone.run (zone-evergreen.js:123)
at zone-evergreen.js:857
at ZoneDelegate.invokeTask (zone-evergreen.js:399)
at Object.onInvokeTask (core.js:41344)

错误 #2

GET https:///Files/FBEB2AE9-B14C-4C78-8F4A-0CE4FF9DF6F5/EDB62F71-6D1C-4347-B277-0D0BF98B9A1E?sv=2017-04-17&sr=c&sig=AnlnrIFDingda21arBI1mbA0yu2mqtAYehDEWNB5tA4%3D&se=2020-09-19T08%3A07%3A49Z&sp=rwdl&restype=container&_=9311731167285 net::ERR_FAILED

标签: angularazureazure-blob-storageangular10

解决方案


您是否尝试过为您的存储帐户配置 CORS?

https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/storage/storage-blob#cors


推荐阅读