我一直在尝试找出如何使用Apache Camel的google-drive drive-files组件将一些文件插入到驱动器中的嵌套文件夹中。到目前为止,下面的代码能够将文件插入到驱动器的根文件夹中。
from("timer:bkp?period={{timer.period}}")
.process(new BackupFile())
.to("google-drive://drive-files/insert")
.log("done");
这是Processor类
public class BackupFile implements Processor {
private static final String TEST_UPLOAD_FILE = "/path/to/file/imge.jpg";
private static final java.io.File UPLOAD_FILE = new java.io.File(TEST_UPLOAD_FILE);
@Override
public void process(Exchange exchange) throws Exception {
File fileMetadata = new File();
fileMetadata.setTitle(UPLOAD_FILE.getName());
FileContent mediaContent = new FileContent(null, UPLOAD_FILE);
final Map<String, Object> headers = new HashMap<>();
headers.put("CamelGoogleDrive.content", fileMetadata);
headers.put("CamelGoogleDrive.mediaContent", mediaContent);
exchange.getIn().setHeaders(headers);
}
}
FYI我需要在插入之前定义嵌套路径,即做一些设置,如
setPath("/mydrive/path/tofile");
任何帮助或线索将不胜感激。
1条答案
按热度按时间uqdfh47h1#
在四处寻找之后,我发现了Node.js示例,它很有帮助。沿着缺少的信息是,嵌套文件夹需要存在,然后我们才能引用它。我期待的是创建文件夹的功能,但也许这可以作为改进添加进来。文件夹的ID(PARENT_ID)也可以从文件夹的URL中找到。
下面的代码终于为我工作。