我想将凭据传递给Azure blob组件,而无需创建和注册bean。
我有一个使用文件并将其路由到Azure Blob的路由
我希望这条路线是通用的。
我面临的挑战是。
答案 0 :(得分:1)
这是我为实现我想要的目的而编写的bean。
从(文件:// somedir)。为了(豆:azureService sendFiletoAzure(姓名,关键,容器);
AzureService {
public void sendFileToAzure(String storageAccountName,
String storageAccountKey, String containerName, Exchange exchange) {
StorageCredentials credentials = new StorageCredentialsAccountAndKey(
storageAccountName, storageAccountKey);
SimpleRegistry registry = new SimpleRegistry();
GenericFile<?> file = (GenericFile<?>) exchange.getIn().getBody();
String blobName = (String) exchange.getIn().getHeader("blobName");
CamelContext context = new DefaultCamelContext(registry);
registry.put("blobCredentials", credentials);
String endpointUri = String.format(azureEndpointUri, storageAccountName,
containerName, blobName);
context.createProducerTemplate().sendBody(endpointUri, file);
}
}