java - 使用 Dropbox API 为 Dropbox 中的所有文件创建可共享链接
问题描述
我的 Dropbox 帐户中有大约 100 个文件,我正在尝试使用 Dropbox API 为所有文件创建可共享链接。
尝试使用
DbxClient = new DbxClient(config, accessToken);
client.createShareableUrl(path); DbxClient
但在找不到符号或找不到类时出错。
import com.dropbox.core.DbxRequestConfig;
import com.dropbox.core.v2.*;
import static com.dropbox.core.v2.files.AlphaGetMetadataError.path;
import com.dropbox.core.v2.files.FileMetadata;
import com.dropbox.core.v2.files.ListFolderResult;
import com.dropbox.core.v2.files.Metadata;
import com.dropbox.core.v2.sharing.RequestedVisibility;
import com.dropbox.core.v2.sharing.SharedLinkMetadata;
import com.dropbox.core.v2.sharing.SharedLinkSettings;
import com.dropbox.core.v2.users.FullAccount;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class DBX {
static boolean doYouWantMeToUpload = false;
private static final String ACCESS_TOKEN = "My access token here I removed it";
public static void main(String args[]) throws DbxException, FileNotFoundException, IOException {
// Create Dropbox client
DbxRequestConfig config = DbxRequestConfig.newBuilder("dropbox/java-tutorial").build();
DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
// Get current account info
FullAccount account = client.users().getCurrentAccount();
System.out.println(account.getName().getDisplayName());
if(doYouWantMeToUpload == true){
// Get files and folder metadata from Dropbox root directory
ListFolderResult result = client.files().listFolder("");
while (true) {
for (Metadata metadata : result.getEntries()) {
System.out.println(metadata.getPathLower());
}
if (!result.getHasMore()) {
break;
}
result = client.files().listFolderContinue(result.getCursor());
}
// Upload "test.txt" to Dropbox
try (InputStream in = new FileInputStream("test.txt")) {
FileMetadata metadata = client.files().uploadBuilder("/test.txt")
.uploadAndFinish(in);
}
// Get shareable link for a file
DbxClient = new DbxClient(config, ACCESS_TOKEN);
client.createShareableUrl(test.txt);
}
}
}
我想为我的 Dropbox 中的所有文件获取可共享的链接。我在 Dropbox GitHub 中按照这些说明进行操作。
解决方案
您正在尝试使用旧createShareableUrl
的 Dropbox API v1,它现已退役。
您应该使用 Dropbox API v2,via DbxClientV2
,就像您对代码中的其他调用所做的那样。
具体来说,要创建共享链接,您应该使用createSharedLinkWithSettings
. 这看起来像:
DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
client.sharing().createSharedLinkWithSettings(path);
推荐阅读
- python - 创建的可执行应用程序不起作用
- javascript - 函数在另一个函数中被多次调用抛出 TypeError: Cannot read property 'suit' of undefined
- r - RStudio Git - 目录名称无效
- python - 我想添加一个值,但被添加了两次,如果我先打印该值,它只会添加一次
- excel - 在公式中同时使用第一行数据和最后一行数据,例如匹配
- openedge - 如何在链式属性表达式中添加潜在客户属性?
- python - 用python发送的电子邮件是空的
- c++ - 在类中声明结构,在源文件中定义
- python - python线程和工人
- remote-debugging - 使用 Windows 的 QNX 目标的远程调试二进制文件