Загрузить BLOB-объект в Dropbox из клиентского JavaScript
У меня есть приложение, которое работает в клиентском браузере и не имеет серверной части (http / js обслуживается, но ничего не отправляется на сервер). приложение повторно развертывается на многих серверах (iis, apache, nginx, иногда localhost, иногда в интрасети) и обслуживается с использованием http (не https). Мое приложение генерирует такие файлы, как zip-файлы и pdf-файлы в браузере клиентов в виде больших двоичных объектов, ДО того, как я захочу сохранить их, поэтому их перемещение на ту же страницу, а затем возврат к приложению, лишает цели; и я больше не могу публиковать сгенерированные данные в Dropbox, так как они должны начинаться заново... Я хочу иметь возможность отправлять эти двоичные объекты прямо в файлы в Dropbox конечных пользователей (и позже на диск Google).
https://www.dropbox.com/developers-v1/dropins/saver работает точно так, как я хотел бы. Это всплывает. Это позволяет пользователю аутентифицироваться во всплывающем окне. Это позволяет пользователю выбирать, куда он хочет поместить мой файл. Но я не могу отправить ему данные URI, или данные, закодированные в Base64, или байтовый массив, или что-то еще. Работает только с файлами, ранее сохраненными в сети. Так что это не работает для меня.
https://www.newfangled.com/direct-javascript-dropbox-api-usage/ показывает, как я могу встраивать данные oauth, которых у меня нет.
https://blogs.dropbox.com/developers/2013/12/writing-a-file-with-the-dropbox-javascript-sdk/ похоже, что он должен работать, за исключением того, что он пытается выполнить сеанс oauth и использует то же самое окно, что и мое приложение (что нежелательно).
Мои текущие вкладки, на которые я смотрю (включает записи, сделанные несколько лет назад, поэтому с тех пор все могло измениться). Некоторые статьи указывают, что это невозможно. Другие статьи указывают на то, что это возможно - я имею в виду этот конкретный комментарий https://github.com/dropbox/dropbox-js/issues/144 не сильно мне помогает. Также не "Я обязательно передам это как обратную связь" - это было передано? Кому?
- https://github.com/dropbox/dropbox-js/issues/144
- https://stackru.com/questions/30094403/save-input-text-to-dropbox
- https://blogs.dropbox.com/developers/2015/06/programmatically-saving-a-url-to-dropbox/
- Как я могу загрузить файлы в Dropbox, используя JavaScript?
- загрузить файл в dropBox используя / files_put javascript
- https://github.com/morrishopkins/DropBox-Uploader/blob/master/js/reader.js
- https://www.dropbox.com/developers/saver
- https://www.dropboxforum.com/hc/en-us/community/posts/202339309-Can-I-save-a-JSON-stream-object-to-Dropbox-file-with-Dropbox-Post-Rest-API-
- https://github.com/smarx/othw
- Может ли Dropbox Saver принимать данные от createObjectURL()?
1 ответ
Похоже, что код из https://blogs.dropbox.com/developers/2013/12/writing-a-file-with-the-dropbox-javascript-sdk/ отлично работает для вас, но вы хотите сделать аутентификацию в отдельном окне браузера / вкладке.
Если это так, я бы предложил просто изменить этот код, чтобы вместо него использовать драйвер аутентификации Popup.