java - 使用 dropBox-sdk-java 获取 Dropbox 中现有文件的共享链接

标签 java dropbox-api

我想检索 Dropbox 上现有文件的共享文件 URL。我正在使用 dropbox-java-sdk,我已经设法为我刚刚上传的文件创建了一个共享链接。我设法获取现有文件的共享链接的唯一方法是列出所有链接并根据路径获取我想要的链接,就像这样

public void getShareLink(String path) throws DbxApiException, DbxException{
        DbxRequestConfig config = new DbxRequestConfig("test/DbApi-sdk");
        DbxClientV2 client = new DbxClientV2(config, getToken(AuthorizationFile));
        
        try {
            ListSharedLinksResult sharedLinkMetadata = client.sharing().listSharedLinks();
            for (SharedLinkMetadata slm:    sharedLinkMetadata.getLinks()){
                if(slm.getPathLower().equalsIgnoreCase(path)){
                     System.out.println(slm.getUrl());
                     return;
                }
            }
        } catch (CreateSharedLinkWithSettingsErrorException ex) {
            System.out.println(ex);
        } catch (DbxException ex) {
            System.out.println(ex);
        }
        
    }

有没有办法直接获取我想要的文件的url?我只是认为迭代所有项目只是为了获得其中一个是一种浪费。

最佳答案

获取ListSharedLinksBuilder来自 listSharedLinksBuilder并设置 ListSharedLinksBuilder.withDirectOnly仅请求指定确切路径的链接:

public String getShareLink(String path) {
    DbxRequestConfig config = new DbxRequestConfig("test/DbApi-sdk");
    DbxClientV2 client = new DbxClientV2(config, getToken(AuthorizationFile));
    try {
        ListSharedLinksResult sh = client.sharing().listSharedLinksBuilder()
                .withPath(path)
                .withDirectOnly(true)
                .start();
        for (SharedLinkMetadata slm : sh.getLinks()) {
            return slm.getUrl();
        }
    } catch (CreateSharedLinkWithSettingsErrorException ex) {
        System.out.println(ex);
        return null;
    } catch (DbxException ex) {
        System.out.println(ex);
        return null;
    }
    return null;
}

关于java - 使用 dropBox-sdk-java 获取 Dropbox 中现有文件的共享链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538255/

相关文章:

git - 通过文件服务器镜像存储库

java - 无法获得标准差,我做错了什么?

java - Codename 一个日期选择器问题

java - TextView中的重复文本对Button的压力

java - 使用 powershell 创建防火墙规则

javascript - 如何将用户重定向到 Node.js 中的另一个链接?

iOS:dyld:库未加载:@rpath/libswiftWebKit.dylib 使用 Cocoa Touch Framework 中的 SwiftyDropbox 时