angular - 未捕获(承诺):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
解决方案
您是否尝试过为您的存储帐户配置 CORS?
https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/storage/storage-blob#cors
推荐阅读
- android - 如何修复 android 6.0(API 23)的“错误膨胀类 com.google.android.material.chip.Chip”(具有自定义样式)
- ios - 扩展程序和应用程序之间共享核心数据
- python - 如何在 TensorFlow 中构造矩阵的这些函数?
- javascript - 更改跨度图标 onClick 并移动部分?
- php - 如果时间大于上午 12 点,则结束 for 循环
- c# - System.InvalidOperationException:Scheme 已经存在:Identity.Application:Identity Scaffolding 之后
- python - 根据另一个列中的键更改列的值
- python - Python程序组合两个字典为公共键添加值
- html - Fig caption doesn't change when i click on other images
- c# - 在采用泛型类型的 api 中将类型作为参数传递