【问题标题】:How to fetch Azure Blob Content Using Java from Azure Functions如何使用 Java 从 Azure Functions 获取 Azure Blob 内容
【发布时间】:2022-11-06 21:46:15
【问题描述】:
我正在使用 Java 创建 Azure 函数,我的要求是我需要将 blob 从一个容器复制到另一个带有加密的容器
所以,为了加密 blob,我在上传到接收器容器时在 blob 之前和之后添加 4bites
现在,我需要获取 blob 内容,为此我在 azure 中找到了一个类,即
@BlobInput(
name = "InputFileName",
dataType = "binary",
path = sourceContainerName+"/{InputFileName}")
byte[] content,
这里byte[] content, 获取 blob 的内容
但是我遇到了一些错误,例如,如果我将任何文件名作为InputFileName 参数传递,则给出 200ok 意味着返回成功。我也很难进行异常处理
所以我正在寻找其他方法来获取 blob 内容....如果我们有任何方法或类,请回答我
【问题讨论】:
标签:
java
azure-functions
azure-sdk-.net
azure-sdk
azure-java-sdk
【解决方案1】:
如果您正在寻找更多控制,而不是使用绑定,您可以直接使用 Azure 存储 SDK。查看quickstart 文档以获取
设置。
This sample code 具有完整的端到端代码,您可以在此基础上进行构建。这是您要在其中查找以供参考的代码
String data = "Hello world!";
InputStream dataStream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
/*
* Create the blob with string (plain text) content.
*/
blobClient.upload(dataStream, data.length());
dataStream.close();
/*
* Download the blob's content to output stream.
*/
int dataSize = (int) blobClient.getProperties().getBlobSize();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(dataSize);
blobClient.downloadStream(outputStream);
outputStream.close();