A powerful web-based GUI application for managing files in Google Cloud Storage buckets with advanced analytics, bulk operations, and professional file management capabilities.
- Visual Interface: Modern web-based GUI instead of command-line tools
- Bulk Operations: Upload/download hundreds of files at once
- Advanced Analytics: Charts, statistics, and file type analysis
- Folder Management: Create, rename, and organize folders easily
- πΈ Photographers - Manage large photo collections
- π₯ Content Creators - Organize video and media files
- πΌ Businesses - Handle document storage and sharing
- π¨βπ» Developers - Manage project files and assets
- π’ Teams - Collaborative file management
- β No coding required - Point and click interface
- β Real-time progress - See upload/download progress
- β Smart file detection - Automatically categorizes 100+ file types
- β Secure sharing - Generate time-limited download links
- β Advanced search - Find files by name, size, date, or type
- β Export capabilities - Download file lists and metadata
- Python 3.7 or higher
- Google Cloud Platform account
- Google Cloud Storage bucket
- Service account with Storage permissions
# 1. Download the project
git clone git@github.com:code-abdulrehman/GSFM-streamlit.git
cd GSFM-streamlit
# 2. Run the setup script
chmod +x setup.sh
./setup.sh
# 3. Create your .env file (see below)
# 4. Run the app
source venv/bin/activate
streamlit run main-gui.py# 1. Create virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 2. Install dependencies
pip install -r requirements.txt
# 3. Create .env file (see below)
# 4. Run the app
streamlit run main-gui.pystreamlit==1.29.0- Web GUI frameworkgoogle-cloud-storage==2.10.0- Google Cloud integrationpandas==2.1.3- Data processingplotly==5.17.0- Interactive chartsPillow==10.1.0- Image processing
- Go to Google Cloud Console
- Navigate to IAM & Admin β Service Accounts
- Create a new service account or use existing one
- Download the JSON key file
- Encode it to base64:
base64 -i your-service-account.jsonCreate a .env file in the project root:
# Google Cloud Storage Configuration
GOOGLE_APPLICATION_CREDENTIALS_JSON_BASE64=your_base64_encoded_service_account_json_here
PHOTO_STORAGE_BUCKET=your-bucket-name
PUBLIC_BUCKET=your-public-bucket-nameExample:
GOOGLE_APPLICATION_CREDENTIALS_JSON_BASE64=eyJ***************NvdW50Iiwi...
PHOTO_STORAGE_BUCKET=my-photos-bucket
PUBLIC_BUCKET=my-public-bucketYour service account needs these IAM roles:
Storage Object Viewer- Read filesStorage Object Admin- Upload/delete filesStorage Legacy Bucket Reader- Bucket information
# Activate virtual environment
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Run the GUI application
streamlit run main-gui.py- Local URL:
http://localhost:8501 - Network URL:
http://your-ip:8501(accessible from other devices)
- Bucket Analytics - File counts, sizes, and statistics
- Interactive Charts - Visual file type distribution
- Recent Activity - Latest uploads and modifications
- Storage Overview - Total space usage and trends
- Advanced Search - Find files by name, size, date, or type
- Bulk Operations - Upload/download multiple files
- Folder Management - Create, rename, and organize folders
- File Preview - View images and videos directly in browser
- Single File Upload - Upload one file at a time
- Multiple Files - Select and upload several files
- Bulk Upload - Upload hundreds of files with progress tracking
- Folder Selection - Choose destination folder or create new ones
- Individual Downloads - Download single files
- Bulk Downloads - Download entire folders as ZIP
- Signed URLs - Generate secure, time-limited download links
- Metadata Export - Export file lists as CSV/JSON
- Smart File Detection - Automatically categorizes 100+ file types
- Time-based Filtering - Find files by creation/modification date
- Size-based Search - Filter by file size ranges
- Content Type Analysis - Detailed MIME type detection
The app features a clean sidebar navigation with these sections:
- βΉοΈ Bucket Info & Analytics - Overview and statistics
- π Dashboard - Visual charts and file management
- π Folder Management - Organize your files
- π€ Advanced Upload - Upload files with options
- π₯ Bulk Download - Download multiple files
- π Advanced Search & Preview - Find and preview files
- π Export Links & Metadata - Generate sharing links
- π Simple Search - Quick file search
- π File Details - Detailed file information
- π±οΈ Point & Click - No need to remember commands
- π Visual Analytics - See your data in charts and graphs
- β‘ Bulk Operations - Handle hundreds of files at once
- π Smart Search - Find files by multiple criteria
- π± Web Interface - Access from any device on your network
- π― Progress Tracking - See real-time upload/download progress
| Problem | Solution |
|---|---|
| "Authentication Error" | Check your .env file has correct base64 credentials |
| "Bucket Not Found" | Verify bucket names in .env match your Google Cloud buckets |
| "Permission Denied" | Ensure service account has Storage Object Admin role |
| "Module Not Found" | Run source venv/bin/activate then pip install -r requirements.txt |
| "Port already in use" | Streamlit will automatically use the next available port (8502, 8503, etc.) |
- Check the terminal output for detailed error messages
- Ensure your Google Cloud project has billing enabled
- Verify your service account has the required permissions
file_downlad_and_upload/
βββ main-gui.py # π Main GUI application (use this!)
βββ main.py # Command-line version
βββ requirements.txt # Python dependencies
βββ setup.sh # Automated setup script
βββ README.md # This documentation
βββ .env # Your configuration (create this)
βββ .gitignore # Git ignore rules
βββ venv/ # Virtual environment
- β
Never commit
.envfile or credentials to version control - β Use base64 encoding for credentials in environment variables
- β Regularly rotate service account keys
- β Use least-privilege IAM roles
- β Enable billing on your Google Cloud project
- Follow the setup instructions above
- Create your
.envfile with Google Cloud credentials - Run the app:
streamlit run main-gui.py - Open your browser to
http://localhost:8501 - Start managing your Google Cloud Storage files!
π Enjoy your new professional file management system!