gpt4 book ai didi

java - 如何使用容器 SAS 和 Azure Java SDK 设置 RetryPolicy?

转载 作者:行者123 更新时间:2023-12-02 11:37:34 27 4
gpt4 key购买 nike

我正在实现一个 Android 应用程序,需要使用容器 SAS 将图像上传到 Blob 容器。

当前使用完整端点凭据作为连接字符串,我可以使用以下代码向我的 CloudBlobClient 添加重试策略:

CloudStorageAccount storageAccount = CloudStorageAccount
.parse(storageConnectionString);
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();

BlobRequestOptions options = new BlobRequestOptions();
RetryPolicy policy = new RetryExponentialRetry(BACKOFF_DELTA, MAX_RETRIES);
options.setRetryPolicyFactory(policy);
blobClient.setDefaultRequestOptions(options);

CloudBlobContainer container = blobClient.getContainerReference(containername);

现在,当我从帐户 key 切换到 SAS 时,我不知道如何使用容器的 SAS 签名创建 CloudBlobClient。我可以使用 SAS 的 URL 创建 CloudBlobClientCloudBlobContainer,但客户端是使用匿名凭据创建的,无法与我的容器关联:

CloudBlobClient blobClient = new CloudBlobClient(URI.create(containerurl));
CloudBlobContainer container = new CloudBlobContainer(URI.create(containerurl));

有没有办法将 RetryPolicy 直接添加到 CloudBlobContainer 或创建与我的容器类关联的经过身份验证的 CloudBlobClient

最佳答案

这篇文章同时标记了“Java”和“Android”,所以我会回复Java SDK,Android应该类似。

这里有几个选项:

  • 所有进行服务调用的 API 均提供 an overload它接受 BlobRequestOptions 对象。该对象中的设置(包括重试策略)会覆盖客户端的默认设置。
  • 使用 URI 构造时,CloudBlobContainer 和 CloudBlob 对象会在内部创建一个默认的 BlobServiceClient 对象,您可以使用 getServiceClient() 访问该对象。方法。然后您可以对此设置默认值。
  • 如果您想继续使用连接字符串,可以使用 SAS token 创建一个连接字符串,如文档 here 所示。 .
  • 您可以创建 StorageCredentials使用 SAS token 的对象,然后您可以使用该 token 创建 CloudStorageAccount 对象。请注意,如果您选择此路线,则需要使用采用 an account name 的 CloudStorageAccount 构造函数之一。或an endpoint ,否则 SDK 将无法构建您的存储帐户的 URL。

希望这有帮助!

关于java - 如何使用容器 SAS 和 Azure Java SDK 设置 RetryPolicy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com