Fix Box metadata template name - Use correct lowercase name and field names
Box Metadata Extraction Fixed: Template Name: ❌ Was: 'Ferrero-DAM-Metadata' (with dashes and caps) ✅ Now: 'ferrerodammetadata' (lowercase, no dashes) Field Names: ❌ Was: 'CreativeX Score', 'CreativeX URL' ✅ Now: 'creativexScore', 'creativexUrl' (camelCase) Test Results with File 2035459900168: ✅ Template found successfully ✅ creativexScore: 90 ✅ creativexUrl: https://www.bbc.com ✅ Metadata extraction working! A2→A3 workflow will now: 1. Download file from Box 2. Read ferrerodammetadata template 3. Extract creativexScore and creativexUrl 4. Update CREATIVEX fields in asset representation 5. Upload to DAM with CreativeX data Test: Upload a file to Box with ferrerodammetadata template applied and the A2→A3 script will extract and use those values! 🤖 Generated with Claude Code
This commit is contained in:
parent
ede21c55d2
commit
b3fbb8b345
2 changed files with 11 additions and 11 deletions
Binary file not shown.
|
|
@ -119,13 +119,13 @@ class BoxClient:
|
|||
logger.error("Failed to get/create Box folder: {}".format(str(e)))
|
||||
raise
|
||||
|
||||
def get_file_metadata(self, file_id, template_name='Ferrero-DAM-Metadata'):
|
||||
def get_file_metadata(self, file_id, template_name='ferrerodammetadata'):
|
||||
"""
|
||||
Get metadata from Box file using metadata template
|
||||
|
||||
Args:
|
||||
file_id: Box file ID
|
||||
template_name: Metadata template name (default: Ferrero-DAM-Metadata)
|
||||
template_name: Metadata template name (default: ferrerodammetadata)
|
||||
|
||||
Returns:
|
||||
dict with metadata fields or empty dict if not found
|
||||
|
|
@ -133,25 +133,25 @@ class BoxClient:
|
|||
try:
|
||||
file_obj = self.client.file(file_id)
|
||||
|
||||
# Try to get metadata from template
|
||||
# Try to get metadata from template (scope is enterprise_ENTERPRISE_ID)
|
||||
try:
|
||||
metadata_dict = file_obj.metadata(scope='enterprise', template=template_name).get()
|
||||
logger.info("Retrieved Box metadata from template: {}".format(template_name))
|
||||
|
||||
# Extract CreativeX fields
|
||||
# Extract CreativeX fields (camelCase field names)
|
||||
creativex_data = {}
|
||||
if 'CreativeX Score' in metadata_dict:
|
||||
creativex_data['score'] = metadata_dict['CreativeX Score']
|
||||
logger.info("CreativeX Score: {}".format(metadata_dict['CreativeX Score']))
|
||||
if 'creativexScore' in metadata_dict:
|
||||
creativex_data['score'] = metadata_dict['creativexScore']
|
||||
logger.info("CreativeX Score: {}".format(metadata_dict['creativexScore']))
|
||||
|
||||
if 'CreativeX URL' in metadata_dict:
|
||||
creativex_data['url'] = metadata_dict['CreativeX URL']
|
||||
logger.info("CreativeX URL: {}".format(metadata_dict['CreativeX URL']))
|
||||
if 'creativexUrl' in metadata_dict:
|
||||
creativex_data['url'] = metadata_dict['creativexUrl']
|
||||
logger.info("CreativeX URL: {}".format(metadata_dict['creativexUrl']))
|
||||
|
||||
return creativex_data
|
||||
|
||||
except Exception as e:
|
||||
logger.warning("No metadata template found on file: {}".format(str(e)))
|
||||
logger.warning("No metadata template found on file ({}): {}".format(template_name, str(e)))
|
||||
return {}
|
||||
|
||||
except Exception as e:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue