如何在Azure blob存储中捕获上载失败的瞬态错误



我有以下从前端类型scipt代码上传文件到Azure blob存储的工作代码。由于网络或任何其他问题,我必须捕捉与上传失败场景相关的错误。我们怎样才能在前端发现这些错误?假设我正在上传一个1GB大小的文件,在上传过程中,如果有任何网络问题,那么一旦网络可用,它会恢复还是从一开始重新开始上传?

const blobServiceClient = new BlobServiceClient(`https://${STORAGE_ACCOUNT_NAME}.blob.core.windows.net`,credentials);
const containerClient = blobServiceClient.getContainerClient(containerName);
const fileName = path.basename(localFilePath);
const blobClient = containerClient.getBlobClient("folder1/"+fileName);
//const blobClient = containerClient.getBlobClient(fileName);
const blockBlobClient = blobClient.getBlockBlobClient();
blockBlobClient.uploadFile(localFilePath);

由于网络或任何其他问题。我们怎样才能抓住前面的错误终止

您可以简单地将代码包装在try/catch块中。每当存储端发生错误时,都会返回一个错误对象。该错误对象将包含一个名为statusCode的属性。您可以检查状态代码以确定是否应该重试该操作。例如,如果状态代码>=400且小于500,则不应重试该操作。任何状态代码>=500可以重试。

假设我上传的文件大小为1GB,在上传过程中有任何网络问题,那么一旦网络可用,它会恢复或上传将从开始重新开始?

SDK将不会恢复失败的上传。它将从头开始。维护上传状态将是您的应用程序的责任。

最新更新