webapp を使用して、ユーザー入力に基づいてファイルを作成し、ドロップボックスにアップロードしたいと考えています。何らかの理由で、Dropbox Web サイトに Java のチュートリアルがありません。
example1
example2の 2 つの例を見つけました。
後者は 2013 年 5 月のものですが、どちらもサポートされていない古い API を使用しているようです。dropbox-core-sdk-1.7.jar を使用した実際の例を探しています。
例に基づいて単純化されたアップローダーを作成しました
最初に DbxClient を作成し (例を参照)、次にアップロードします。
/**
* Upload a file to your Dropbox
* @param srcFilename path to the source file to be uploaded
* e.g. /tmp/upload.txt
* @param destFilename path to the destination.
* Must start with '/' and must NOT end with'/'
* e.g. /target_dir/upload.txt
* @param dbxClient a DbxClient created using an auth-token for your Dropbox app
* @throws IOException
*/
public void upload (String srcFilename, String destFilename, DbxClient dbxClient) throws IOException {
File uploadFile = new File (srcFilename);
FileInputStream uploadFIS;
try {
uploadFIS = new FileInputStream(uploadFile);
}
catch (FileNotFoundException e1) {
e1.printStackTrace();
System.err.println("Error in upload(): problem opening " + srcFilename);
return;
}
String targetPath = destFilename;
try {
dbxClient.uploadFile(targetPath, DbxWriteMode.add(), uploadFile.length(), uploadFIS);
}
catch (DbxException e) {
e.printStackTrace();
uploadFIS.close();
System.err.println("Error in upload(): " + e.getMessage());
System.exit(1);
return;
}
}
Java SDKのexamples
フォルダーを見て、API が以前のバージョンとどのように異なるかを確認してください。ドキュメントも参照してください。たとえば、おそらく次を使用する必要がありますuploadFile
。.lang.String、com.dropbox.core.DbxWriteMode、long、java.io.InputStream)。
(申し訳ありませんが、その URL を適切に解析することができません。)