gpt4 book ai didi

java - 使用java的Azure文件图像路径

转载 作者:行者123 更新时间:2023-12-02 10:20:23 24 4
gpt4 key购买 nike

您好,我正在尝试将图像保存在 azure 存储上,我已经有配置步骤并且有上传方法

AsynchronousFileChannel fileChannel = AsynchronousFileChannel.open(sourceFile.toPath());
TransferManager.uploadFileToBlockBlob(fileChannel, blob, 8 * 1024 * 1024, null).subscribe(response -> {
System.out.println("Completed upload request.");
System.out.println(response.response().statusCode());

});

如何获取 azure 上的 url 图像路径以将其保存在数据库中并在我的网站上显示?

最佳答案

正如@GauravMantri所说,您可以通过blob.toURL()获取blob的URL。然后,如果 blob 的容器是公共(public)的(设置公共(public)访问级别)并且 blob 的 ContentType 属性设置正确(如 image/png),则可以直接访问通过 url 获取图像,例如在 img 标记中使用以在下面的网页中显示。

<img src="myaccountname.blob.core.windows.net/test/testURL">

但考虑到安全访问,容器设置了私有(private)访问级别,请引用官方文档Secure access to an application's data in the cloudUsing shared access signatures (SAS) 。然后,我们需要生成带有SAS签名的blob url以供访问。

以下是生成带有 SAS 签名的 blob url 的示例代码。

SharedKeyCredentials credentials = new SharedKeyCredentials(accountName, accountKey);
ServiceSASSignatureValues values = new ServiceSASSignatureValues()
.withProtocol(SASProtocol.HTTPS_ONLY) // Users MUST use HTTPS (not HTTP).
.withExpiryTime(OffsetDateTime.now().plusDays(2)) // 2 days before expiration.
.withContainerName(containerName)
.withBlobName(blobName);
BlobSASPermission permission = new BlobSASPermission()
.withRead(true)
.withAdd(true)
.withWrite(true);
values.withPermissions(permission.toString());
SASQueryParameters serviceParams = values.generateSASQueryParameters(credentials);
String sasSign = serviceParams.encode();
String blobUrlWithSAS = String.format(Locale.ROOT, "https://%s.blob.core.windows.net/%s/%s%s",
accountName, containerName, blobName, sasSign);

您还可以在 blob.toURL() 字符串末尾添加 SAS 签名。

String blobUrlWithSAS = blob.toString()+sasSign;

关于SAS Signature,可以引用ServiceSASSignatureValues Class中的示例代码和 AccountSASSignatureValues Class .

关于java - 使用java的Azure文件图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386825/

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