Raj*_*j V 1 java azure azure-java-sdk azure-storage-account azure-sdk
我正在尝试列出给定订阅的存储帐户,并尝试拉取订阅的所有 blob 端点。
它的完成方式如下。
一种。使用 subscriptionId 与 Azure.Authenticated 对象创建缓存。这个基本上是为了复用,用于后续业务流程中的sdk api调用
湾 如果上述缓存中没有subscriptionid,则按如下方式创建Azure.Authenticated 对象,并将其放入缓存中
ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(
subscription.getClientId(),
subscription.getTenantId(),
subscription.getKey(),
subscription.getEnvironmentType().getEnvironment());
Azure.Authenticated = Azure.configure()
.withLogLevel(LogLevel.NONE)
.authenticate(credentials);
Run Code Online (Sandbox Code Playgroud)
C。使用订阅 ID 获取 Azure 对象
azure = authenticatedClient.withSubscription(subscription.getSubscriptionId());
Run Code Online (Sandbox Code Playgroud)
d. 使用 storageAccounts 列表 API 对给定订阅的所有存储帐户进行分页和列出。
try {
PagedList<StorageAccount> strgAccList = azure.storageAccounts().list();
boolean hasNextPage = null != strgAccList.currentPage();
int pageCount = 0;
if (hasNextPage) {
while (hasNextPage) {
++pageCount;
Page<StorageAccount> resourcePage = strgAccList.currentPage();
Iterator<StorageAccount> it = resourcePage.items().iterator();
while (it.hasNext()) {
StorageAccount storageAccount = it.next();
storageAccounts.put(storageAccount.name(), storageAccount);
}
hasNextPage = strgAccList.hasNextPage();
if (hasNextPage) {
strgAccList.loadNextPage();
}
}
}
} catch (Exception e) {
//log exception here
}
Run Code Online (Sandbox Code Playgroud)
由于此 azure 对象已缓存,因此此对象(我假设其中包含一个令牌)可能会在此迭代中过期或最终导致异常情况。我的问题是
一种。这个对象的 TTL 是多少?
湾 我应该创建一个新的天蓝色对象,以防 TTL 过期?
C。或者 sdk api 会负责用新的令牌更新令牌吗?
文档没有帮助(我也没有看到),我在 azure java sdk github 项目中搜索。那里的样本也没有任何帮助。请用所有的智慧来启发我。谢谢!
a) 这个对象的 TTL 是多少?
答:由于您假设将令牌包装在对象中,因此该对象的 TTL 取决于访问令牌的到期时间。到期时间默认值为 86,400 秒(24 小时) 参考:https : //auth0.com/docs/security/tokens/access-tokens/update-access-token-lifetime
b) 如果 TTL 过期,我应该创建一个新的 azure 对象吗?
答:TTL 到期后无需创建新对象,您可以刷新并生成新令牌并将该令牌分配给同一对象。
C) 或者 sdk api 会负责用新的令牌更新令牌吗?
答:是的,API 将使用新令牌更新令牌。令牌是允许应用程序系统执行授权和身份验证过程的工件。
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |