-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupload_frontify_asset.py
More file actions
38 lines (32 loc) · 1.58 KB
/
upload_frontify_asset.py
File metadata and controls
38 lines (32 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import os
from dotenv import load_dotenv
from src.services.FrontifyClient import FrontifyClient
from src.utils.frontify_queries.upload_file.upload_file import upload_file
from src.utils.frontify_queries.create_asset.create_asset import create_asset
from src.utils.base64tools import decode_base64_string
load_dotenv(override=True)
# security and other configuration headers
frontify_domain = os.getenv('frontify_domain')
frontify_access_token = os.getenv('frontify_access_token')
parent_id = os.getenv('frontify_project_id')
# configure Frontify Client
client = FrontifyClient(
domain=frontify_domain,
access_token=frontify_access_token,
retries=3,
timeout_in_seconds=600 # create_asset mutation can take a long time for large files
)
# initiate file upload to Frontify and upload file in chunks
# see https://developer.frontify.com/document/1367#/deep-dive/upload-file-create-asset for deep dive
response = upload_file(client=client, filepath='demo_files/travel-walk.svg', filename='travel-walk.svg')
supported = response['filetype_supported']
fileid = response['file_id']
file_size = response['file_size_in_bytes']
# if filetype supported by Frontify library, proceed with replacing an asset on Frontify
if supported:
try:
assetId = create_asset(client=client, fileid=fileid, title="Example asset", parentid=parent_id)
decoded_asset_id = decode_base64_string(assetId)['identifier']
print(f'successfully created asset at https://{frontify_domain}/screens/{decoded_asset_id}')
except Exception as e:
raise Exception(f'Failed to replace asset with error {e}')