首页 > 解决方案 > 无法将 csv 文件上传到 Azure 存储 Blob

问题描述

下面的代码不会将示例 MY_TEST_FILE.csv 上传到 azure 存储 blob。无法解决问题或找到任何这样做的示例。代码中缺少什么?日志中没有错误,在 Azure 存储中找不到文件

'''

        StorageSharedKeyCredential credential = new StorageSharedKeyCredential("test", "test");
        String uri = "https://test.blob.core.windows.net";

        BlobServiceClient client = new BlobServiceClientBuilder()
                .endpoint(uri)
                .credential(credential)
                .buildClient();
        CamelContext mycontext = new DefaultCamelContext();
        mycontext.getRegistry().bind("client", client);
       
        mycontext.setStreamCaching(true);
        mycontext.addRoutes(new RouteBuilder() {
            @Override
            public void configure() {
              

                from("file:c://folder2?fileName=MY_TEST_FILE.csv&noop=true").to("azure-storage-blob://test/report?blobName=MY_TEST_FILE.csv&operation=uploadBlockBlob&serviceClient=#client");


            }
        });
        mycontext.start();'''

标签: spring-bootapache-camelazure-blob-storage

解决方案


您可能需要为 azure-storage-blob 组件提供凭据。

StorageSharedKeyCredential credentials = new StorageSharedKeyCredential(accountName, accountKey);
mycontext.getRegistry().bind("credentials", credentials);

from("file:c://folder2?fileName=MY_TEST_FILE.csv&noop=true")
    .to("azure-storage-blob:accountName/containerName?"
         + "blobName=MY_TEST_FILE.csv&operation=uploadBlockBlob"
         + "&credentials=#credentials");

请注意,#beanId弃用,您可能必须#bean:beanId根据骆驼版本切换到。


推荐阅读