如何以编程方式从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>',
)
请帮忙
答案 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.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)