当前位置: 首页 > 知识库问答 >
问题:

添加Azure存储Blob容器输入绑定Azure函数Java

蔡鹏程
2023-03-14

我有一个EventHubTrighted函数app。下面是方法签名的代码示例:

@functionname(“foo”)@storageaccount(“foostorageRead”)public HttpResponseMessage run(@httptrigger(name=“req”,methods={httpmethod.post},authLevel=authorizationlevel.anonymous)httprequestmessage request,@blobinput(name=“{test1}”,dataType=“String”,path=“blobstorageContainer/{test1}.json”)String test1,

        @BlobInput(
                  name = "test2", 
                  dataType = "string", 
                  path = "blobStorageContainer/{test2}.json") String test2,
       
        final ExecutionContext context) 

我想在方法签名中添加到CloudBlobContainer(上面方法签名中的blobStorageContainer)的输入绑定,这样我就不需要在方法中显式连接到这个容器(因为我需要从这个容器访问更多文件)。在Java中有什么注释/方法可以做到这一点吗?

共有1个答案

郭凡
2023-03-14

我跟随博客连接Blob存储容器以获取文件。

请参考下面的代码,使用CloudBlobContainer连接容器,如果新容器不存在于BLOB中,则创建新容器。

CloudStorageAccount storageAccountDest;
CloudBlobClient blobClientDest = null;
CloudBlobContainer containerDest = null;
String storageConnectionStringDest = System.getenv("AzureStorageDemoConnectionStringDest");

// Parse the connection string and create a blob client to interact with Blob
// storage
storageAccountDest = CloudStorageAccount.parse(storageConnectionStringDest);
blobClientDest = storageAccountDest.createCloudBlobClient();  
containerDest = blobClientDest.getContainerReference("files2");

// Create the container if it does not exist with public access.
context.getLogger().info("Creating container: " + containerDest.getName());
containerDest.createIfNotExists(BlobContainerPublicAccessType.CONTAINER, new BlobRequestOptions(),
new OperationContext());
CloudBlob blobDest = containerDest.getBlockBlobReference(filename);
try {
    context.getLogger().info("Start Uploading blob: " + filename);
    blobDest.uploadFromByteArray(content, 0, content.length);
    context.getLogger().info("Finished Uploading blob: " + filename);
} 
catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

请看一下这里

 类似资料:
  • 我正在创建多个 Azure 函数(HTTP 触发器)来从 blob 存储中获取内容,获取单个 blob 的几个元数据值,并获取特定 blob 类型的所有元数据属性。 我对使用绑定与使用blob存储的rest API与azure-storage sdk感到困惑。 创建azure函数时使用哪种方法最好?如果您能给我指出一些此类示例留档,那也会很有帮助。谢谢你。

  • Azure函数存储帐户Blob容器触发器 在我们的一个用例中,我正在为具有以下条件的存储帐户容器中的任何活动寻找Azure函数触发器 < li >具有特定命名约定的容器(名称如xxxx-input) < li >它应该自动检测是否创建了新的容器(具有特定的命名约定) < li>

  • 我想使用Python中的Azure函数将JSON数据作为. json文件上传到Azure存储Blob。 因为我使用的是Azure函数,而不是实际的服务器,所以我不想(也可能无法)在本地内存中创建一个临时文件,并使用Azure blob存储客户端库v2将该文件上载到Azure blob存储。1对于Python(这里有参考链接)。因此,我想为Azure函数使用输出blob存储绑定(这里有参考链接)。

  • 我正在处理一个Azure存储项目,其中我需要在容器中上传和下载blob,并在列表框中列出容器和blob。我无法在我的列表框中显示容器和blob。 最后是我调用上传、下载和列表方法的接口背后的代码:

  • 我已经审阅了Microsoft提供的关于触发器的文档。[https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python][1] 事实上,在Azure函数中使用参数允许我们检索blob和一些属性(),我们还可以使用函数读取字节,但是我们如何将字节转换为

  • 我正在尝试创建一个Azure Function(. NET核心)以从存储帐户检索SaS,并且难以理解为什么我无法访问存储。 函数签名: 索引方法“GetBlobSaS”Microsoft时出错。蔚蓝色的网络作业。主机:无法将参数“storage”绑定到类型StorageAccount。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、ServiceBus、Timers等