Для одной задачи нужно было загружать файлы на дропбокс, и потом получать оттуда временную ссылку. Dropbox сам предоставляет удобный модуль для работы с python. В статье напишу пару примеров — как загрузить файл на дропбокс через питон.
Установить библиотеку можно обычным способом через pip. Пишем
pip install dropbox
Ставится последняя версия.
Чтобы загрузить файл, нам нужно его «прочитать побайтово» и передать на сервер. Но перед этим надо получить Access token. Об этом чуть позже. Для загрузки достаточно следующего кода:
import dropbox dbx = dropbox.Dropbox('0L9___6b') # наш access token with open('d:/myfile.png','rb') as file: # открываем файл в режиме чтение побайтово response = dbx.files_upload(file.read(),'/myfile.png') # загружаем файл: первый аргумент (file.read()) - какой файл; второй - название, которое будет присвоено файлу уже на дропбоксе. print(response) # выводим результат загрузки
Ответ, если все нормально, будет примерно таким:
FileMetadata(name='myfile.png', id='id:N1vtTR2yQKAAAAAAAAAANw', client_modified=datetime.datetime(2019, 4, 20, 19, 32, 42), server_modified=datetime.datetime(2019, 4, 20, 19, 32, 43), rev='013000000014003fd40', size=215910, path_lower='/myfile.png', path_display='/myfile.png', parent_shared_folder_id=None, media_info=None, symlink_info=None, sharing_info=None, property_groups=None, has_explicit_shared_members=None, content_hash='a6dc4aab14039d2a733846bb8bbd87907534829fcfdbbbe3188d8')
Чтобы получить Access token заходим на эту страницу — App Console Dropbox. Логинимся или регистрируемся если нужно. Нажимаем на Create app.
Выбираем первый вариант — Dropbox API. Дальше выбираем какой доступ нам надо — только к одной папке (этого приложения) или полный доступ. Я выбрал App folder, достаточно. И имя нашему приложению.
Нажимаем Create App внизу, и нам выдаст страницу с настройками приложения.
Чуть ниже нажимаем Generate под Generated access token. Ждем, и сохраняем этот ключ. Он понадобится для всех запросов.
На этой же странице можно задать описание, картинку для приложения и смотреть статистику использования (все это выходит за рамки статьи).
Файл загружается в папку приложения, для которого получали token. У меня это:
https://www.dropbox.com/home/Приложения/Bdseo%20blog
Дальше уже можно загружать в подпапки, указывая путь в аргументе функции (например, «/for_article/myfile.png»).
Сразу хочу отметить, что ссылка временная. Выглядит она примерно вот так:
https://dl.dropboxusercontent.com/apitl/1/ABjzAWNnep9dSDmNoNdiZUzQ167KU8LIPHtkxu3REUWd4FpbVLbU5BnQVDx9yMYm7vrFWmvjvJrUQCzLLQdIGzw8Yl0uxY1bizDfggOnT1uVIj6wnbC5Pr2k-RYHk69Ixj_8aMdukeBK7csCz2YMLA2uuiqWBfGCeRphi-l4bEhF5sWFnb9mngCe9TswPENxiPRsgpw7HS_G9znepULE8N8wr1F8m4pmplUWE0huXW2TzUhZ3slYlvkLYdNiEVzOMwC933VTnGlxozQ7F3bMfncr_Qg
Сколько она живет я не замерял, пару часов, может сутки. Поэтому, перед каждым скачиванием нужно получать новую ссылку. Это делается просто, вызвав следующую функцию:
# Выведет на экран url файла myfile.png для скачивания dbx.files_get_temporary_link('/myfile.png').link
Больше информации и примеров в официальной документации на сайте dropbox по этой ссылке (для python).
Если есть вопросы — пишите в комментарии.
Очень много разговоров в последнее время за токен NOT. Много бирж будут делать листинг токена,…
Телеграм недавно запустил возможность стейкать (замораживать) USDT и получать за это их валюту TON. Очень…
Биржа криптовалют Binance проводит сейчас промо-акцию: новым пользователям дают ваучеры в сумме 110 долларов. Деньги…
Самый главный момент в работе с youtube - это получить ключ api через консоль разработчика…
Арендую сервер для небольшого проекта на python. И вот приходит мне уведомление, что за сутки…
Тестирую одну схему, и нужно на много видео наложить watermark. Решил делать через Python 3,…
View Comments
Спасибо ,ссылку лучше получать так
dbx.sharing_create_shared_link("/dir/file.txt")
Дает на сайт, но можно сделать прямую:
https://help.dropbox.com/ru-ru/files-folders/share/force-download
Вы о скачке, я о заливке
дает прямую или на сайт?