我正在尝试使用Apache Camel与Google云端硬盘进行通信。我已经为我的项目设置了Google的API,并且一切正常,但当我尝试将文件上传到GDrive时,该文件为空。 这是我的代码:
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
GoogleDriveConfiguration configuration = new GoogleDriveConfiguration();
configuration.setApplicationName("camel-drive");
configuration.setClientSecret("...");
configuration.setClientId("...");
configuration.setAccessToken("...");
configuration.setRefreshToken("...");
GoogleDriveComponent googleDriveComponent = new GoogleDriveComponent();
googleDriveComponent.setConfiguration(configuration);
context.addComponent("google-drive", googleDriveComponent);
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:data/inbox?noop=true")
.to("google-drive://drive-files/insert?inBody=content");
}
});
context.start();
Thread.sleep(20000);
context.stop();
}
我的理解是,在阅读了Google和Camel的文档之后,Camel组件需要一个content
和一个mediaContent
参数。 content
应该包含文件元数据,例如名称和文件类型,而mediaContent
应该包含文件的实际内容。
现在,此Camel组件还允许使用特殊的URI选项inBody
,它告诉端点在交易所的正文中搜索指定的选项。
这就是我所做的...如果我将'mediaContent'指定为inBody,则该文件甚至都不会上传。
我这里缺少什么吗?