问题标签 [azure-sdk-for-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
752 浏览

java - 如何使用 Azure SDK for Java v12 删除单个 Blob 文件?

如何使用适用于 Java 的 Azure SDK v12 删除单个 Blob 文件?这是我到目前为止所尝试的。但它不起作用。

顺便说一句,示例代码是 Kotlin:

我们正在使用库“azure-storage-blob-12.4.0.jar”

0 投票
2 回答
864 浏览

azure - 上传后 Azure 存储 zip 文件损坏(使用适用于 Java 的 Azure 存储 Blob 客户端库)

问题:从数据生成的 csv 文件的 zip 文件在上传到 Azure Blob 存储后似乎已损坏。

上传前的 zip 文件如下所示:

在此处输入图像描述

一切正常。上传后的同一个 zip 文件已损坏,如下所示: 在此处输入图像描述

在上传期间,我使用适用于 Java 的 Azure Storage Blob 客户端库(v. 12.7.0,但我也尝试过以前的版本)。这是我使用的代码(类似于SDK 自述文件中提供的示例):

我得到上传的文件:

在此处输入图像描述

当我直接从存储资源管理器下载文件时,文件已经损坏。我做错了什么?

0 投票
1 回答
486 浏览

azure - 如何使用 ARM 模板或 SDK 使用 java 创建 Microsoft.SshKey

我想为创建 SSH 密钥创建服务,因为输出必须检索 pem 文件内容。

0 投票
1 回答
1427 浏览

java - 使用具有有限堆的 azure-sdk-for-java 上传大文件

我们正在开发需要使用 Azure 作为文件内容存储的文档微服务。Azure Block Blob 似乎是一个合理的选择。文档服务的堆限制为 512MB ( -Xmx512m)。

我没有成功地使用有限的堆来上传流文件azure-storage-blob:12.10.0-beta.1(也在 上测试过12.9.0)。

尝试了以下方法:

  1. 使用从文档中复制粘贴BlockBlobClient

结果: java.io.IOException: mark/reset not supported - SDK 尝试使用标记/重置,即使文件输入流报告此功能不受支持。

  1. 添加BufferedInputStream以减轻标记/重置问题(根据建议):

结果: java.lang.OutOfMemoryError: Java heap space。我假设 SDK 试图将所有 1.17GB 的文件内容加载到内存中。

  1. 替换BlockBlobClientBlobClient删除堆大小限制 ( -Xmx512m):

结果:使用了 1.5GB 的堆内存,所有文件内容都加载到内存中 + 在 Reactor 一侧进行了一些缓冲

VisualVM 的堆使用情况

  1. 通过以下方式切换到流式传输BlobOutputStream

结果:文件在上传过程中损坏。Azure 门户网站显示 1.09GB 而不是预期的 1.17GB。从 Azure Web 门户手动下载文件可确认文件内容在上传期间已损坏。内存占用显着减少,但文件损坏是个大问题。

问题:无法提供内存占用小的有效上传/下载解决方案

任何帮助将不胜感激!

0 投票
1 回答
582 浏览

spring-boot - 在 Spring Boot 应用程序中从 Azure Key Vault 检索私钥

我在 Azure Key Vault 中有一个 .pfx 证书。我需要从中检索私钥以解密我的 Spring Boot 应用程序中的字符串值。

我已经使用 azure-spring-boot-starter-keyvault-certificates 库将证书加载到 java 密钥库,这似乎工作正常。

我不明白的是如何检索私钥部分。我做错了什么的任何线索?

在我的机器上使用相同的证书进行测试的工作方式如下:

0 投票
0 回答
146 浏览

azure-spring-boot - SDK for java 中的服务主体 (SPN) 用法,用于访问 Azure 存储

我是 Azure SDK for Java 的新手。到目前为止,我找不到关于如何:

  • 要么:直接使用 SPN 凭据
  • 或:使用 SPN 创建 SAS

访问 Azure 存储 (blob)。

BlobServiceClientBuilder接受:

  • credential(StorageSharedKeyCredential credential)- 仅适用于 Azure 存储中的实际密钥(目前不适合我 - 因为我需要使用 SPN)
  • credential(TokenCredential credential)- 不知道如何使用它;有关系ClientSecretCredential吗?如果是 - 我如何将它们用于 SPN
  • credential(AzureSasCredential credential)- 看起来很有希望,但对于我的 SPN,我找不到任何关于如何首先创建 SAS 的提示。

提前感谢您的支持:)

0 投票
0 回答
71 浏览

azure-storage - 持久化 Azure Blob 存储租约 ID 的设计模式?

使用 Azure 存储 Java SDK v12 并寻找最佳方法来持久化获取的leaseIds 以用于 blob 上的租约。

将leaseId存储在blob标签中?Blob 元数据?存放在桌子上?每个用户的存储队列,我可以在其中推送/弹出锁定到 blob 路径的leaseIds?

似乎简单易行的方法是将其设置在给定 blob 的标签甚至元数据中。这也意味着额外的控制可以防止除编辑者以外的任何人在租用 blob 时对其进行更改。

存储在表格中似乎有点过头了,并且给设计增加了一些复杂性。

我们还考虑使用有限租约,只要用户坐在我们 Web 应用程序的编辑屏幕上,就简单地进行异步调用来更新,但这会导致对 azure 存储的额外调用(至少每 60 秒,如果我们想保持租用)

想法?

其他人如何在 azure storage sdk 中实施租约?

0 投票
2 回答
736 浏览

spring-boot - 哪个 azure-spring-boot-sample-active-directory 示例用于验证来自 Vue.js 应用程序的 Spring Boot 应用程序中的访问令牌?

我有一个使用@azure/msal-browser. 我在 Azure 中有一个“应用程序注册”,用于验证用户是否是我们 AD 的一部分以及是否允许他/她访问该网页。这工作正常。用户需要先进行身份验证才能访问网页。

网页本身对 REST API 执行多个 AJAX 调用,这只不过是启用了 Spring Web 的 Spring Boot 应用程序。这个后端是不安全的......但(!)。

目标:

我想保护后端,以便只有在您拥有有效的访问令牌时才能查询 REST API。前端将在Authentication: Bearer XXX向后端执行调用时添加令牌。

我在这里查看了示例:https ://github.com/Azure/azure-sdk-for-java/tree/master/sdk/spring/azure-spring-boot-samples我看到了 4 个选项:

  • azure-spring-boot-sample-active-directory-resource-server-by-filter-stateless
  • azure-spring-boot-sample-active-directory-resource-server-by-filter
  • azure-spring-boot-sample-active-directory-resource-server-obo
  • azure-spring-boot-sample-active-directory-resource-server

前两个似乎有点过时,因为如果我在本地运行它们,我会收到所有已弃用的警告。但是这些例子中的哪一个会涵盖我的用例?

总结:

我想要 ...

  • ...在前端授权用户使用msal-browser
  • ...只需将访问令牌添加为标头即可从前端(嗯,执行 AJAX 调用的客户端浏览器)向后端执行请求
  • ...后端自动验证令牌,如果有效,后端返回数据

感谢您的任何反馈!

0 投票
2 回答
88 浏览

azure - 如何在使用 Azure sdk for java 创建磁盘时设置 VM 生成

我没有找到任何设置 VM 生成的选项,默认情况下为 1,但我需要将其更改为
2。Azure 门户创建磁盘

Disk managedDisk = azure.disks().define("myosdisk") .withRegion(Region.US_EAST2) .withExistingResourceGroup("test") .withWindowsFromVhd ("https://abcd.blob.core.windows.net/vm/‘laptop_vm’.vhd") .withSizeInGB(500).withSku(DiskSkuTypes.PREMIUM_LRS).create();

0 投票
0 回答
510 浏览

java - 访问 Azure Blob 时出现此异常“无法初始化类 com.azure.storage.blob.implementation.util.ModelHelper”

如文档中所述,我正在从 Spring Boot 应用程序访问 Azure Blob,我已包含以下 JAR,

然后我使用以下代码列出 Azure blob 中的文件,

我正在访问容器内的 blob 并列出文件,

当我尝试调试时,断点在第 2 行之后运行,恰好在 .endpoint() 方法调用处。没有奇怪的堆栈跟踪(我试图包含在 try/catch 中)但没有用。我在客户端收到以下异常,