Azure (Java) BlobClient.uploadWithResponse 何时准备好上传?

Posted

技术标签:

【中文标题】Azure (Java) BlobClient.uploadWithResponse 何时准备好上传?【英文标题】:When is Azure (Java) BlobClient.uploadWithResponse ready with uploading? 【发布时间】:2021-06-28 13:46:16 【问题描述】:

我想将图像上传到 Azure,当正确上传后,我想删除原始本地图像。为此,我需要知道上传成功/完成的时间。

BlobClient.uploadWithResponse 的 docs 提到它返回 Response<BlockBlobItem>。我可以使用此响应来触发后续操作/方法吗?如果是,如何?

【问题讨论】:

【参考方案1】:

考虑到 Azure 存储是强一致性的,只有在创建 blob 时才会得到成功的响应。您可以使用状态码 (201 - Created) 来确定 blob 是否创建成功。

要检查状态代码,您可以在Response 对象中使用getStatusCode()

【讨论】:

我明白了。而且(不是那么精通 Java ......)我将如何进行,因为这将是一个异步操作,我怎样才能让它触发另一个方法调用,例如? 我也不精通 Java(...但不要告诉任何人 :D)。请在此处查看示例:github.com/Azure/azure-sdk-for-java/blob/…。 HTH。 我不会...我尝试使用 subscribe 无法识别。示例适用于异步版本。我正在使用同步 BlobClient。知道如何使用BlobClient.uploadWithResponse 的响应吗? @musicformellons 你不需要使用subscribe:你使用的是同步的BlobClient。因此,当uploadWithResponse 完成时,Azure 中的操作也完成了,您可以安全地从本地文件系统中删除您的文件。比如:try // Create BlobClient BlobClient client = ...; // Invoke uploadWithResponse. Consider use uploadFileWithResponse Response<BlockBlobItem> response = client.uploadWithResponse(...); if (response.getStatusCode() == 201) // remove local file catch (Throwable t) // Handle error

以上是关于Azure (Java) BlobClient.uploadWithResponse 何时准备好上传?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java SDK v2 com.microsoft.azure.documentdb 的 Azure Cosmos 自动缩放

如何使用 java azure-storage-file-datalake 复制 Azure 存储文件/目录

使用java的Azure文件图像路径

Azure Java 函数 -502-Bad Gateway

如何确定文件在 Java 中的 Azure 文件存储上是不是完整?

基于deviceTwinTrigger的Azure Java函数:检索DeviceId