Dropbox - API 下载 link 文件

Dropbox - API get the download link of a file

我有一个网络应用程序,用户可以在其中上传他的徽标图片 使用 dropbox api 我可以将文件保存到 dropbox 文件夹,这很棒

但是我想下载 link 所以使用我的 angular 客户端无法设置 img src 标签并显示图像

我一直在使用这个实现:

String url = client.sharing().createSharedLinkWithSettings("/" + clientId + "/logo." + fileName[1]).getUrl();

不过顾名思义,我得到了一个共享 link,它基本上是一个带有图像的网页 我只需要图像 可能吗?

是的,请改用 DbxUserFilesRequests.getTemporaryLink。这将为您提供一个直接指向文件数据的临时 link。

@Greg 给出的答案是正确的,但我需要一个永久的 link 我能够使用这里的答案 Dropbox API - Get permanent link for my media?

这是我的实现

String[] fileName = file.getOriginalFilename().split("\.");
InputStream in = file.getInputStream();
client.files().uploadBuilder("/" + clientId + "/logo." + fileName[1]).withMode(WriteMode.OVERWRITE).uploadAndFinish(in);
log.debug("Successfully uploaded image to drop box account");
SharedLinkMetadata meta = client.sharing().createSharedLinkWithSettings("/" + clientId + "/logo." + fileName[1]);
String url = meta.getUrl();
// now we need to strip any other url params and append raw=1;
url = url.split("\?")[0];
url = url + "\?raw=1";

这对我有用,比上面的解决方案容易得多,per this article:

To get a direct download link, replace the www.dropbox.com with dl.dropboxusercontent.com

编辑:我还发现您可以将查询参数 ?dl=1(dl 表示下载,1 表示“已启用”)添加到共享 link,这将使它成为 direct-download link 还有。这可能比上面的方法更可靠 (long-term)。