Files
sharey/docs/MIGRATION_SUMMARY.md
2025-09-27 17:45:52 +01:00

119 lines
3.4 KiB
Markdown

# Sharey B2 Migration Summary
## What Changed
Your Sharey application has been successfully modified to use Backblaze B2 cloud storage instead of local file storage. Here are the key changes:
### 🔄 Core Changes
1. **Storage Backend**:
- Removed local file storage (`uploads/` and `pastes/` folders)
- Added Backblaze B2 cloud storage integration
- Files and pastes now stored in B2 bucket
2. **Dependencies Added**:
- `b2sdk`: Official Backblaze B2 SDK
- `python-dotenv`: Environment variable management
3. **Configuration**:
- Added `.env` file support for B2 credentials
- Added connection validation and error handling
- Added health check endpoint
### 📁 New Files Created
- `requirements.txt` - Python dependencies
- `.env.example` - Environment template
- `setup.py` - Automated setup script (Python-based)
- `test_b2.py` - B2 connection testing utility
- `DEPLOYMENT.md` - Production deployment guide
- Updated `.gitignore` - Improved git ignore rules
- Updated `README.md` - Comprehensive setup instructions
### 🔧 Modified Functions
1. **File Upload** (`/api/upload`):
- Now uploads files directly to B2 bucket under `files/` prefix
- Returns B2 direct download URLs
- Better error handling
2. **File Serving** (`/files/<file_id>`):
- Now redirects to B2 download URLs
- No longer serves files locally
3. **Paste Creation** (`/api/paste`):
- Stores paste content in B2 under `pastes/` prefix
- UTF-8 encoding support
4. **Paste Viewing** (`/pastes/<paste_id>` and `/pastes/raw/<paste_id>`):
- Downloads paste content from B2
- Maintains same user interface
### 🏗️ Bucket Organization
Your B2 bucket will be organized as:
```
your-bucket/
├── files/ # Uploaded files (images, documents, etc.)
│ ├── abc123.jpg
│ ├── def456.pdf
│ └── ...
└── pastes/ # Text pastes
├── ghi789.txt
├── jkl012.txt
└── ...
```
## Next Steps
1. **Get B2 Credentials**:
- Sign up at [Backblaze B2](https://www.backblaze.com/b2)
- Create application key and bucket
- Note down: Key ID, Application Key, Bucket Name
2. **Configure Environment**:
```bash
cp .env.example .env
# Edit .env with your B2 credentials
```
3. **Install Dependencies**:
```bash
python setup.py # or manually: pip install -r requirements.txt
```
4. **Test Configuration**:
```bash
python test_b2.py
```
5. **Run Application**:
```bash
python app.py
```
## Benefits of B2 Storage
- ✅ **Scalable**: No local disk space limitations
- ✅ **Reliable**: Built-in redundancy and backups
- ✅ **Cost-effective**: Pay only for what you use
- ✅ **Global CDN**: Fast downloads worldwide
- ✅ **Secure**: Encrypted storage with access controls
- ✅ **Maintenance-free**: No local file management needed
## Migration Notes
- Existing local files/pastes will remain in local folders
- New uploads will go to B2
- Old URLs will break (files are now served from B2)
- No data migration script provided (manual migration needed if desired)
- B2 bucket should be set to "Public" for file sharing to work properly
## Support
If you encounter issues:
1. Run `python test_b2.py` to test your configuration
2. Check the health endpoint: `http://localhost:8866/health`
3. Verify B2 bucket permissions and settings
4. Ensure your .env file has correct credentials