URL файла общего доступа Dropbox - PullRequest
10 голосов
/ 23 апреля 2011

Я занимаюсь разработкой приложения для Android, в котором для организации файлов используется Dropbox.Я изучаю Dropbox API, но его описание и помощь ограничены, так как нет документации по Dropbox API.

Я все еще хотел бы управлять файлами с некоторыми функциями, например, помещая файл и получая файл из Dropbox.Теперь проблема в том, что я помещаю некоторые файлы в папку Dropbox public , и мне нужен URL-адрес, чтобы поделиться с моими контактами в приложении.Но в API я не смог найти ни одной функции, которая возвращает веб-URL файла для совместного использования (точно так же, как в интерфейсе Deskotop Dropbox, пользователь может получить общий URL-адрес для отправки друзьям).

Может ли кто-нибудь помочь мне выяснить, как поделиться этим файлом с контактами в Приложении?

Или каким-либо другим способом поделиться файлом с помощью Dropbox Android API?

Ответы [ 3 ]

13 голосов
/ 16 марта 2013

В соответствии с изменениями, внесенными в DropBox, здесь: https://www.dropbox.com/help/16/en Общедоступных папок больше не будет, вместо этого доступ к файлам будет осуществляться через Share Link.

Если вы используете Android DropBox Core Api, то можно получить доступ к общей ссылке следующим образом:

// Get the metadata for a directory
Entry dirent = mApi.metadata(mPath, 1000, null, true, null);

for (Entry ent : dirent.contents) {

String shareAddress = null;
if (!ent.isDir) {
    DropboxLink shareLink = mApi.share(ent.path);
    shareAddress = getShareURL(shareLink.url).replaceFirst("https://www", "https://dl");
    Log.d(TAG, "dropbox share link " + shareAddress);
}   
}

ОБНОВЛЕНИЕ: 2014/07/20 Dheeraj Bhaskar Используйте следующую вспомогательную функцию вместе с вышеуказанной функцией. Поскольку DropBox начал посылать укороченные ссылки, получить правильную ссылку немного сложнее. Сейчас я использую этот метод:

Мы просто загружаем URL, следуем перенаправлениям и получаем новый URL.

    String getShareURL(String strURL) {
    URLConnection conn = null;
    String redirectedUrl = null;
    try {
        URL inputURL = new URL(strURL);
        conn = inputURL.openConnection();
        conn.connect();

        InputStream is = conn.getInputStream();
        System.out.println("Redirected URL: " + conn.getURL());
        redirectedUrl = conn.getURL().toString();
        is.close();

    } catch (MalformedURLException e) {
        Log.d(TAG, "Please input a valid URL");
    } catch (IOException ioe) {
        Log.d(TAG, "Can not connect to the URL");
    }

    return redirectedUrl;
}

Примечание: Все это должно быть сделано, конечно, в AsyncTask или Thread. Это даст правильные ссылки для загрузки

Обновление 2014/07/25: изменение URL-адресов общего ресурса Dropbox
Один на один вид ожидаемых URL
От команды Dropbox:

Мы хотели бы сообщить вам о предстоящем изменении URL структура общих ссылок Dropbox. Хотя это и не является частью API, изменение может повлиять на приложения, которые манипулируют URL, возвращенными / shared конечная точка или тип ссылки «Предварительный просмотр», возвращаемый Chooser Drop-в.

К возвращенным ссылкам теперь добавляется? Dl = 0.

Например, вместо https://www.dropbox.com/s/99eqbiuiepa8y7n/Fluffbeast.docx, ты получать URL как эта ссылка https://www.dropbox.com/s/99eqbiuiepa8y7n/Fluffbeast.docx?dl=0.

2 голосов
/ 11 июня 2011

Полезная тема в форумах Dropbox:

http://forums.dropbox.com/topic.php?id=37700&replies=7#post-326432

IF Публичная ссылка на файл всегда

dl.dropbox.com/u/<your users uid>/<path under /Public>/filename

тогда мы можем просто использовать API для получения и создания публичного URL в коде.

Возможно, это также может помочь: загрузить файл в Dropbox и скопировать публичный адрес. Этот скрипт загружает файл в ваш / публичный каталог и использует ваш аккаунт UID для создания общедоступного URL. Затем он отображает URL-адрес консоли.

https://github.com/sylvainfilteau/dropbox-api-command/commit/6aa817c79220c5de4ff5339cd01ea8b528bcac36

Я еще не реализовал интерфейс Dropbox, но это одна из функций, которую мне нужно разработать. Надеюсь, еще через пару дней.

1 голос
/ 23 апреля 2011

Я считаю, что URL выглядит следующим образом:

http://dl.dropbox.com/u/YOUR_DROPBOX_ID/YOUR_FILE_NAME

...