d30ec9b66bc1305053cba0844099209f6b014d23
## Changes
1. **Support ESC environment variable names**
- Fallback to R2_ADMIN_ACCESS_KEY_ID if R2_ACCESS_KEY not set
- Fallback to R2_ADMIN_SECRET_ACCESS_KEY if R2_SECRET_KEY not set
- Allows script to work with Pulumi ESC (beanflows/prod) variables
2. **Use landing bucket path**
- Changed R2 path from `psd/{etag}.zip` to `landing/psd/{etag}.zip`
- All extracted data goes to landing bucket for consistent organization
3. **Updated Pulumi ESC environment**
- Added R2_BUCKET=beanflows-data-prod
- Fixed R2_ENDPOINT to remove bucket path (now just account URL)
## Testing
- ✅ R2 upload works: Uploaded to landing/psd/316039e2612edc1_0.zip
- ✅ R2 deduplication works: Skips upload if file exists
- ✅ Local mode still works without credentials
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Materia Environment Setup
We use uv as our Python package manager for faster, more reliable dependency management.
https://docs.astral.sh/uv/
We recommend using vscode as your IDE. https://code.visualstudio.com/
1. Install UV
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Setup the env
Simply run:
uv sync
This will install python & the dependencies declared so far
3. Setup pre-commit
pre-commit install
4. Adding a dependency
uv add requests
Managing a project with uv
https://docs.astral.sh/uv/guides/projects/#managing-dependencies
test
Description
Languages
Python
50.7%
HTML
33.7%
Jupyter Notebook
8.3%
Shell
3.7%
CSS
2.9%
Other
0.7%