No description
Replaces 20+ second job polling with instant folder search.
PERFORMANCE IMPROVEMENT:
Before: Poll job 10 times, 2 sec each = 20+ seconds per upload
After: No polling, instant return + optional folder search
CHANGES:
1. Removed job polling from upload_asset()
- No more 20 second waits
- Returns job_id immediately for async uploads
- Adds 'is_async' flag to response
2. NEW METHOD: find_asset_by_filename_in_folder()
- Fast search by filename in folder
- Can be called after batch uploads complete
- Returns actual asset ID instantly
UPLOAD FLOW:
Immediate Response (201):
→ Returns asset ID immediately
→ Log: "Upload successful (immediate): file.jpg → Asset ID: abc123"
Async Response (202):
→ Returns job ID immediately (no waiting!)
→ Log: "Upload accepted (async): file.jpg → Job ID: job456"
→ Log: "Note: Job processing in background. Asset ID can be found later."
FINDING ASSET ID LATER (OPTIONAL):
After batch uploads, call once per folder:
```python
# Upload all files first (fast!)
for file in files:
result = dam.upload_asset(...)
job_ids.append(result['job_id'])
# Then search folder for actual IDs (one API call)
for filename in filenames:
asset_id = dam.find_asset_by_filename_in_folder(folder_id, filename)
```
BENEFITS:
✓ No 20 second waits per file
✓ Batch uploads can run quickly
✓ Optional post-upload search for asset IDs
✓ Single API call to get all IDs
USE CASES:
- Fast uploads: Don't need immediate asset ID
- Batch processing: Upload many files quickly
- Later retrieval: Search folder when needed
- Status updates: Can update campaign without waiting
The job_id is stored and can be used for tracking.
Actual asset_id can be retrieved later if needed.
Changes:
- scripts/shared/dam_client.py
- Removed polling from upload_asset()
- Added find_asset_by_filename_in_folder() method
- Returns immediately with job_id for async
- Added 'is_async' flag to response
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
|---|---|---|
| Python-Version | ||
| src | ||
| .gitignore | ||
| 43984435_n1izyn3l_config.json | ||
| Box-config.json | ||
| campaign_response.json | ||
| check_folder_status.php | ||
| clean_workflow.php | ||
| config.example.json | ||
| config.php | ||
| config_v3.php | ||
| Content Scaling Flow V3.postman_collection.json | ||
| Content Scaling Flow.postman_collection_Oliver(New).json | ||
| Content Scaling Flow_Oliver.Postman_Collection.json | ||
| DAM_LOOKUPDOMAINS_RAW.json | ||
| debug_assets.php | ||
| debug_status.php | ||
| ECOMMERCE_ALLOWED_FIELDS.md | ||
| EXTRACTION_GUIDE.md | ||
| fetch_lookupdomains.php | ||
| HANDOFF_NEXT_SESSION.md | ||
| index.php | ||
| PROJECT_STATUS.md | ||
| PROJECT_STATUS_2025-10-24.md | ||
| PROJECT_STATUS_2025-10-28.md | ||
| PROJECT_STATUS_2025-10-29.md | ||
| PROJECT_STATUS_2025-10-30.md | ||
| PROJECT_STATUS_2025-11-03.md | ||
| PYTHON_AUTOMATION_PLAN.md | ||
| QUESTIONS_FOR_DAM_IT_TEAM.md | ||
| README.md | ||
| simple_test.php | ||
| test_asset_detail.php | ||
| test_creativex.php | ||
| test_direct_download.php | ||
| test_filename_parser.php | ||
| test_runner.php | ||
| test_search.php | ||
| test_upload.jpg | ||
| test_upload_standalone.php | ||
| UPLOAD_FROM_BOX_COMPLETE.md | ||
| UPLOAD_FROM_BOX_PHASE2_COMPLETE.md | ||
| UPLOAD_FROM_BOX_STATUS.md | ||
| UPLOAD_TROUBLESHOOTING.md | ||
| workflow.php | ||
| workflow_v3.php | ||
Ferrero OpenText Content Scaling Workflow
Complete automation system for Ferrero DAM content scaling workflows
Version: 2.0.0
Status: ✅ Production Ready
Last Updated: November 3, 2025
📚 START HERE
PROJECT_STATUS_2025-11-03.md ← Complete status report with everything you need to know!
🎯 What This System Does
Automates the complete content scaling workflow:
- A1→A2: Download Local Adaptation master assets → Box
- A2→A3: Upload agency files from Box → DAM
- B1→B2: Download Global Master assets → Box
- A5→A6: Handle rework assets
Features: V2 naming, 27-28 MVP metadata fields, Box metadata integration, automated status updates, email notifications, webhook integration.
✅ What's Working
- ✅ PHP web interface (4 workflows)
- ✅ Python automation (3 scripts)
- ✅ Box metadata integration (CreativeX)
- ✅ Full metadata preservation (JSONB)
- ✅ Email notifications (detailed)
- ✅ Log rotation (1 month)
- ✅ All tested and production-ready
🚀 Quick Start
PHP App:
http://localhost:8888/ferrero-opentext/workflow_v3.php
Python Scripts:
cd Python-Version
source venv/bin/activate
python scripts/test_connection.py
📖 Documentation
Essential Reading:
- PROJECT_STATUS_2025-11-03.md - Complete status (read this!)
- Python-Version/DEPLOYMENT.md - Production deployment
- Python-Version/README.md - Python automation guide
All workflows documented with screenshots and examples.
Repository: bitbucket.org:zlalani/ferrero-opentext.git
Latest Commit: b3fbb8b
Status: Production Ready ✅