使用API​​从Box位置下载文件

时间:2018-05-02 23:56:32

标签: python unix curl box

如何以编程方式从Box位置下载文件?

我有一个共享的盒子位置网址(不是盒子位置的确切路径)。

我想下载该位置下的所有文件。

我检查了下面的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 :(得分:1)

您可以使用提供直接网址的方法:

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)

它可以解决你的问题吗?

答案 1 :(得分:1)

获取共享Box链接的元数据:

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

循环浏览文件夹中的每个项目,并使用boxsdk.object.file.File.contentboxsdk.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)