A fast and efficient file system scanner with support for multiple storage backends. Features an elegant ASCII tree display and comprehensive logging.
- Multiple storage backends:
- Google Drive
- Local filesystem
- AWS S3
- Google Cloud Storage (coming soon)
- ASCII tree visualization
- YAML configuration
- Structured logging
- Memory-efficient scanning
# Build
make build
# List local files
./bin/superscan --source-type filesystem
# List Google Drive files
./bin/superscan --source-type google-drive
# List S3 files
./bin/superscan --source-type s3# Current directory
./bin/superscan --source-type filesystem
# Specific directory
./bin/superscan --source-type filesystem --start-path /path/to/dirExample output:
project/
├── 📁 src/
│ ├── 📄 main.go (1024 bytes)
│ └── 📁 pkg/
│ ├── 📄 config.go (512 bytes)
│ └── 📄 utils.go (768 bytes)
└── 📄 README.md (256 bytes)
# Root directory
./bin/superscan --source-type google-drive
# Specific folder
./bin/superscan --source-type google-drive --start-path "My Drive/Folder"Example output:
My Drive/
├── 📁 Documents/
│ ├── 📄 report.pdf (1024 bytes)
│ └── 📁 Projects/
│ ├── 📄 design.docx (512 bytes)
│ └── 📄 notes.txt (256 bytes)
└── 📁 Photos/
└── 📄 vacation.jpg (2048 bytes)
# List files from S3 bucket
./bin/superscan --source-type s3
# List files from specific prefix
./bin/superscan --source-type s3 --start-path "folder/subfolder"Example output:
my-bucket/
├── 📁 folder/
│ ├── 📄 file1.txt (1024 bytes)
│ └── 📁 subfolder/
│ ├── 📄 file2.txt (512 bytes)
│ └── 📄 file3.txt (768 bytes)
└── 📄 root-file.txt (256 bytes)
Configuration file: ~/.superscan/config.yaml
google_drive:
credentials_file: /path/to/credentials.json
token_file: /path/to/token.json
start_path: root
s3:
bucket: my-bucket
region: us-east-1
start_path: ""SUPERSCAN_CONFIG_GOOGLE: Path to Google Drive credentialsAWS_S3_BUCKET: S3 bucket nameAWS_REGION: AWS region (default: us-east-1)AWS_ACCESS_KEY_ID: AWS access keyAWS_SECRET_ACCESS_KEY: AWS secret key
- Go to Google Cloud Console
- Create/select project
- Enable Drive API
- Create OAuth 2.0 credentials
- Download as
credentials.json
- Create an AWS account if you don't have one
- Create an S3 bucket
- Create an IAM user with S3 access
- Configure AWS credentials:
export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_REGION="your-region" export AWS_S3_BUCKET="your-bucket-name"
# Build
make build
# Test
make test
# Lint
make lintsuperscan/
├── bin/ # Binaries
├── pkg/
│ ├── config/ # Configuration
│ ├── logger/ # Logging
│ └── source/ # Storage backends
├── .gitignore
├── go.mod
├── LICENSE
└── README.md
MIT License - see LICENSE
- Fork
- Create feature branch
- Commit changes
- Push
- Open PR