89.7. 放置(上传)操作

在 Dropbox 上上传文件。

作为 Camel 制作者工作。

下面列出了这个操作的选项:

属性Mandatory(必需)描述

uploadMode

true

添加或强制此选项指定在 dropbox 上应如何保存文件:如果"添加"新文件将会重命名为 (如果 dropbox 上已存在相同名称的文件)。如果 dropbox 上已存在具有相同名称的文件的"强制",这将会被覆盖。

localPath

false

要从本地文件系统上传的文件夹或文件。如果配置了这个选项,则优先于将含有 Camel 消息正文内容的单个文件上传(消息正文转换为字节阵列)。

remotePath

false

Dropbox 上的文件夹目标.如果没有设置属性,则组件会将该文件上传到远程路径上,该路径等于本地路径。对于 Windows 或没有绝对 localPath,您可以运行类似如下的异常:

原因原因:java.lang.IllegalArgumentException: 'path': bad path: must start with "/": "C:/My/File"
or
Caused by: java.lang.IllegalArgumentException: 'path': bad path: must start with "/": "MyFile"

89.7.1. Samples

from("direct:start").to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&uploadMode=add&localPath=/root/folder1")
  .to("mock:result");

from("direct:start").to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&uploadMode=add&localPath=/root/folder1&remotePath=/root/folder2")
  .to("mock:result");

和 上传一个文件,其中包含来自消息正文的内容

from("direct:start")
   .setHeader(DropboxConstants.HEADER_PUT_FILE_NAME, constant("myfile.txt"))
   .to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&uploadMode=add&remotePath=/root/folder2")
   .to("mock:result");

文件的名称可以在标头 DropboxConstants.HEADER_PUT_FILE_NAMEExchange.FILE_NAME 中按照优先顺序的顺序提供。如果没有提供标头,则会将消息 id (uuid)用作文件名。