首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用container和Azure来设置RetryPolicy?

如何使用container和Azure来设置RetryPolicy?
EN

Stack Overflow用户
提问于 2018-02-15 17:35:52
回答 1查看 586关注 0票数 0

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

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

代码语言:javascript
复制
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);

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

代码语言:javascript
复制
CloudBlobClient blobClient = new CloudBlobClient(URI.create(containerurl));
CloudBlobContainer container = new CloudBlobContainer(URI.create(containerurl));

是否有一种方法可以直接将RetryPolicy添加到CloudBlobContainer或创建与我的容器类关联的经过身份验证的CloudBlobClient

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-16 18:37:25

这是两个标记' Java‘和' Android ',所以我会回答关于Java,Android应该是类似的。

这里有几种选择:

  • 所有进行服务调用的API都提供接受过载对象的BlobRequestOptions。此对象中的设置(包括重试策略)覆盖客户端的默认值。
  • 当使用URI构造时,CloudBlobContainer和CloudBlob对象在内部创建一个默认的BlobServiceClient对象,您可以使用getServiceClient()方法访问该对象。然后,您可以对此设置默认值。
  • 如果要继续使用连接字符串,可以创建带有SAS令牌的连接字符串,如文档中的这里所示。
  • 您可以使用SAS令牌创建StorageCredentials对象,然后可以使用该令牌创建CloudStorageAccount对象。请注意,如果选择此路由,则需要使用采用帐户名端点帐户名构造函数之一,否则SDK将无法为您的存储帐户构造URL。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48813164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档