Cómo descargar archivos con Box API y Python

Actualmente tengo la parte de carga de mi código funcionando. ¿Cómo podría convertir esto en un progtwig que descargará los archivos respectivos de la carpeta de la caja?

Este es el progtwig de carga:

import requests import json #the user acces token access_token = 'UfUNeHhv4gIxFCn5WEXHgBJwfG8gHT2o' #the name of the file as you want it to appear in box dst_filename = 'box_file' #the actual file path src_directory = 'C:\Python\cache\\' #the name of the file to be transferred src_filename = 'Wildlife.wmv' #the id of the folder you want to upload to parent_id = '0' counter = 1 for counter in range(1, 6): src_file = (src_directory + src_filename + '-' + str(counter)) print(src_file) box_filename = (dst_filename + '-' + str(counter)) headers = { 'Authorization': 'Bearer {0}'.format(access_token)} url = 'https://upload.box.com/api/2.0/files/content' #open(src_file,'rb') - opens the source file with the buffered reader files = { 'filename': (box_filename, open(src_file,'rb')) } data = { "parent_id": parent_id } response = requests.post(url, data=data, files=files, headers=headers) #file_info = response.json() #print(file_info) print(response) print(url, data, files, headers) counter = counter + 1 

Esta es la solicitud de ejemplo de rizo que proporciona la documentación de Box API para descargar archivos.

 curl -L https://api.box.com/2.0/files/FILE_ID/content \ -H "Authorization: Bearer ACCESS_TOKEN" \ -o FILE_PATH/file_name.txt 

Parte dos de esta pregunta: ¿Existe una manera de alterar este progtwig (y el progtwig de descarga) para procesar todos los archivos dentro de una carpeta sin importar cuál sea el nombre del archivo?

Soy nuevo en la progtwigción, así que perdona mi falta de habilidades / conocimientos en esta área.

Te sugiero que mires Box SDK

Como puede ver en sus documentos, después de la autenticación con su cliente, solo necesita ejecutar la siguiente línea:

 client.file(file_id='SOME_FILE_ID').content() 

Hay más información en Box SDK Docs. Si esto no satisface sus necesidades porque desea crear su propio SDK de Box, espere a que otra persona le dé una respuesta específica a su problema. Gracias.

Suponga que está obteniendo su autorización correcta, puede descargar el archivo agregando algunas líneas al código de su código existente. Esto copiará los datos del archivo de la caja al archivo local, el nombre aquí es FileFromBox.xlx

 with open('FileFromBox.xls', 'wb') as open_file: client.file('FileId_of_box_file').download_to(open_file) open_file.close()