Загружать файлы из ящика с помощью API - PullRequest
0 голосов
/ 03 мая 2018

Как программно скачивать файлы из папки Box?

У меня есть URL-адрес местоположения общего ящика (не точный путь к местоположению ящика).

Я хочу скачать все файлы в папке.

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

https://github.com/box/box-python-sdk

from boxsdk import Client
from boxsdk import OAuth2

oauth = OAuth2(
    client_id='XXX',
    client_secret='XXX',
    store_tokens='XXX',
)


data = client.make_request(
    'GET',
    '<Shared BOX URL>',
)

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Получить метаданные ссылки общего ящика:

shared_folder = client.get_shared_item("https://app.box.com/s/0123456789abcdef0123456789abcdef")

Прокручивайте каждый элемент в папке и загружайте каждый файл, используя boxsdk.object.file.File.content или boxsdk.object.file.File.download_to:

for item in shared_folder.get_items(limit=1000):
    if item.type == 'file':
        # Get file contents into memory
        file_contents = client.file(file_id=item.id).content()
        # Or download to file
        client.file(file_id=item.id).download_to(item.name)
0 голосов
/ 03 мая 2018

Вы можете использовать метод, который дает вам прямой URL:

download_url = client.file(file_id='SOME_FILE_ID').get_shared_link_download_url()

И затем вы можете использовать urlib для загрузки на локальный компьютер:

import urllib
urllib.urlretrieve (download_url , your_local_file_name)

Может ли это решить вашу проблему?

...