使用 dropBox-sdk-java 获取 Dropbox 中现有文件的共享链接
get the sharedlink of an existing file in Dropbox using the dropBox-sdk-java
我想检索 Dropbox 上现有文件的共享文件 url。我正在使用 dropbox-java-sdk,我已经成功地为我刚刚上传的文件创建了一个共享 link。我设法获取现有文件的共享 link 的唯一方法是列出所有 link 并根据路径获取我想要的文件,例如
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
from listSharedLinksBuilder
and set 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;
}
我想检索 Dropbox 上现有文件的共享文件 url。我正在使用 dropbox-java-sdk,我已经成功地为我刚刚上传的文件创建了一个共享 link。我设法获取现有文件的共享 link 的唯一方法是列出所有 link 并根据路径获取我想要的文件,例如
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
from listSharedLinksBuilder
and set 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;
}