Skip to main content
Question

Download files from shared folder (python)

  • May 22, 2025
  • 3 replies
  • 57 views

Forum|alt.badge.img

Hey there,

Here is my scenario:

I need to programmatically access new files from a shared_folder and download them to S3. Here's what I have done so far:

1) - I have added this "shared folder" to my favorites
2) - I have created an APP using python with JWTAuth.
3) - I have allowed all the scope settings for the APP.
4) - In python I have created a new client using the as_user method.
5) - When I attempt to list the objects in my "favorites" "Collection" everything appears apart from the shared folder
6) - When I do the same thing using the developer token, I can see the files in the shared folder.

I have noticed there is a "get_shared_item" method, but this returns a 404. Even when called from the impersonated_client.

So, my question is.. how do I access files from a shared folder when I'm impersonating a user programmatically using python?

Thanks

3 replies

Forum|alt.badge.img

Hi! Did you figure this out? I've been stuck on the exact same issue.


Forum|alt.badge.img

Hey There,

Yes I did... here's a snippet just for you..

 

def download_files_from_box():

log.info('Looking for new files to download from box')

p_key_path = os.path.join("PATH TO YOUR SSH KEY")

box_client_id = os.getenv("BOXCOM_CLIENT_ID")
box_client_secret = os.getenv("BOXCOM_CLIENT_SECRET")
box_user_id = os.getenv("BOXCOM_USER_ID")
box_enterprise_id = os.getenv("BOXCOM_ENTERPRISE_ID")
box_passphrase = os.getenv("BOXCOM_PASSPHRASE")

auth = JWTAuth(
client_id=box_client_id,
client_secret=box_client_secret,
user=box_user_id,
jwt_key_id="YOURKEY",
rsa_private_key_file_sys_path=p_key_path,
rsa_private_key_passphrase=box_passphrase,
enterprise_id=box_enterprise_id
)

auth.authenticate_user()
user_client = Client(auth)

# The only collection you can have is Favourites. The folder that
# has been shared with us has been added as a favourite on our side.

favourites_id = None
collections = user_client.collections()
for collection in collections:
if collection.name == 'Favorites':
favourites_id = collection.id

# Grab a list of available files to download

bulk_data_folder_id = None
file_id_list = []
if favourites_id:

items = user_client.collection(collection_id=favourites_id).get_items()
for item in items:

if item.name == 'NAME OF YOUR FOLDER':
bulk_data_folder_id = item.id

Forum|alt.badge.img

Did you resolve this issue? I have stuck in the same place