文件目录无法从 apache camel 上传 azure blob 上的文件
Posted
技术标签:
【中文标题】文件目录无法从 apache camel 上传 azure blob 上的文件【英文标题】:file-dir is not working to upload a file on azure blob from apache camel 【发布时间】:2021-09-07 21:30:30 【问题描述】:我们在 azure blob 容器中创建了一些文件夹结构,我们希望将一些文件从骆驼路由上传到这个 blob 存储。
当我们尝试指定 file-dir 参数时,它没有正确更新它,但是如果我们在 blob 名称中指定值,那么它会将文件上传到正确的文件夹中。
如果我们在 file-dir 参数中提到该文件夹,您能否帮我解释为什么它不起作用
不工作:
.to("azure-storage-blob://account1/container1?blobName=file1.txt& fileDir=/folder1&operation=uploadBlockBlob")
工作:
.to("azure-storage-blob://account1/container1?blobName=folder1/file1.txt&operation=uploadBlockBlob")
依赖:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-azure-storage-blob-starter</artifactId>
<version>3.5.0</version>
</dependency>
【问题讨论】:
你用的是什么版本的骆驼?不工作,因为这条路径属于消费者方面。
.to("azure-storage-blob://account1/container1?**blobName=file1.txt& fileDir=/folder1**&operation=uploadBlockBlob")
例子:
from("azure-storage-blob://camelazure/container1?blobName=hello.txt&accountName=yourAccountName&accessKey=yourAccessKey&fileDir=/var/to/awesome/dir").
to("mock:results");
消费者示例下的上述建议参考:Azure Storage Blob Service :: Apache Camel
灵魂:
你也可以像这样从生产者端指定你的路径。
.to("azure-storage-blob://camelazure/container1?blobName=blob&operation=uploadPageBlob&serviceClient=#client").to("mock:result");
serviceClient(常用)
将客户端自动连接到存储帐户。此客户端不保存有关特定存储帐户的任何状态,而是向服务上的资源发送适当请求的便捷方式。它也可用于构建 blob 和容器的 URL。此客户端包含对服务帐户的操作。对容器的操作可以通过 BlobServiceClient#getBlobContainerClient(String) 在 BlobContainerClient 上进行,对 Blob 的操作可以通过 BlobContainerClient#getBlobClient(String) 在 BlobClient 上进行。
以上建议的参考在生产者操作示例下->uploadBlockBlob
Azure Storage Blob Service :: Apache Camel
【讨论】:
以上是关于文件目录无法从 apache camel 上传 azure blob 上的文件的主要内容,如果未能解决你的问题,请参考以下文章
[每日一学]apache camel|BDD方式开发apache camel|Groovy|Spock