Name | host-image-backup JSON |
Version |
0.1.2
JSON |
| download |
home_page | None |
Summary | A Python-based command-line tool for backing up images from multiple image hosting services to local storage |
upload_time | 2025-08-15 11:30:24 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | MIT |
keywords |
cli
backup
host
image
oss
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<div align="center">
<h1>Host Image Backup</h1>
</div>
<div align="center">
<a href="README.md"><b>English</b></a> | <a href="README.zh-CN.md"><b>简体中文</b></a>
</div>
<p align="center">
<a href="https://pypi.org/project/host-image-backup/">
<img src="https://img.shields.io/pypi/v/host-image-backup?color=blue" alt="PyPI">
</a>
<img src="https://img.shields.io/github/stars/WayneXuCN/HostImageBackup?style=social" alt="GitHub stars">
<img src="https://img.shields.io/github/license/WayneXuCN/HostImageBackup" alt="License">
</p>
> **Host Image Backup** is a modular Python CLI tool for backing up images from various image hosting services to your local machine with ease.
## Features
- Modular architecture: Easily extend with new providers
- Multi-provider support: Aliyun OSS, Tencent COS, SM.MS, Imgur, GitHub
- Visual progress: Progress bars for backup operations
- Rich CLI interface: Intuitive command-line experience
- Flexible configuration: YAML-based config management
- Resume support: Continue interrupted transfers
- Comprehensive logging: Detailed operation logs
- Well tested: Reliable with test coverage
- Upload support: Upload images to cloud storage
- Metadata management: Track backup operations and files
- Batch operations: Upload multiple files at once
- Duplicate detection: Find and manage duplicate files
- Image compression: High fidelity compression with quality control
---
## Supported Providers
| Provider | Features | Notes |
|------------|---------------------------------------------|----------------------------------|
| OSS | List, backup, upload, delete, file info | Requires Aliyun credentials |
| COS | List, backup, upload, delete, file info | Requires Tencent credentials |
| SM.MS | List, backup | Public API, rate limits apply |
| Imgur | List, backup | Requires Imgur client ID/secret |
| GitHub | List, backup | Requires GitHub token & access |
---
## Installation
**Requirements:**
- Python 3.10 or newer
- pip or uv package manager
**Install from PyPI:**
```bash
pip install host-image-backup
pip install --upgrade host-image-backup
host-image-backup --help
hib --help
```
**Development install:**
```bash
git clone https://github.com/WayneXuCN/HostImageBackup.git
cd HostImageBackup
uv lock
uv sync --all-extras
# Or use pip:
pip install -e ".[dev]"
```
---
## Configuration
**Quick start:**
```bash
host-image-backup init
# Edit config file:
# Linux/macOS: ~/.config/host-image-backup/config.yaml
# Windows: %APPDATA%/host-image-backup/config.yaml
```
**Example configuration:**
```yaml
default_output_dir: "./backup"
max_concurrent_downloads: 5
timeout: 30
retry_count: 3
log_level: "INFO"
providers:
oss:
enabled: true
access_key_id: "your_access_key"
access_key_secret: "your_secret_key"
bucket: "your_bucket_name"
endpoint: "oss-cn-hangzhou.aliyuncs.com"
prefix: "images/"
cos:
enabled: false
secret_id: "your_secret_id"
secret_key: "your_secret_key"
bucket: "your_bucket_name"
region: "ap-guangzhou"
prefix: "images/"
sms:
enabled: false
api_token: "your_api_token"
imgur:
enabled: false
client_id: "your_client_id"
client_secret: "your_client_secret"
access_token: "your_access_token"
refresh_token: "your_refresh_token"
github:
enabled: false
token: "ghp_your_personal_access_token"
owner: "your_username"
repo: "your_repository"
path: "images"
```
**Configuration fields:**
| Field | Description | Required | Default |
|---------------------------|------------------------------------|----------|-------------|
| default_output_dir | Backup directory | No | "./backup" |
| max_concurrent_downloads | Parallel downloads | No | 5 |
| timeout | Request timeout (seconds) | No | 30 |
| retry_count | Retry attempts | No | 3 |
| log_level | Logging level | No | "INFO" |
| access_key_id | Aliyun OSS access key ID | Yes | - |
| access_key_secret | Aliyun OSS access key secret | Yes | - |
| bucket | OSS/COS bucket name | Yes | - |
| endpoint | OSS endpoint URL | Yes | - |
| region | COS region | Yes | - |
| secret_id | Tencent COS secret ID | Yes | - |
| secret_key | Tencent COS secret key | Yes | - |
| api_token | SM.MS API token | Yes | - |
| client_id | Imgur client ID | Yes | - |
| client_secret | Imgur client secret | Yes | - |
| access_token | Imgur access token | Yes | - |
| refresh_token | Imgur refresh token | No | - |
| token | GitHub token | Yes | - |
| owner | GitHub repo owner | Yes | - |
| repo | GitHub repo name | Yes | - |
| path | Folder path in repo | No | "" |
---
## CLI Usage
**Quick start:**
```bash
host-image-backup config init
hib config init
host-image-backup provider test oss
hib provider test oss
host-image-backup provider list
hib provider list
host-image-backup backup start oss --output ./my-backup
hib backup start oss --output ./my-backup
host-image-backup backup all --output ./full-backup
hib backup all --output ./full-backup
```
**Command groups:**
| Group | Command | Description |
|------------|------------------------|------------------------------------|
| Config | config init | Initialize configuration file |
| Provider | provider list | List providers |
| | provider test | Test provider connection |
| | provider info | Show provider info |
| Backup | backup start | Backup from specific provider |
| | backup all | Backup from all enabled providers |
| Upload | upload file | Upload single image |
| | upload directory | Upload multiple images |
| Data | data stats | Show backup statistics |
| | data history | Show backup history |
| | data duplicates | Find duplicate files |
| | data cleanup | Clean up backup files |
| | data verify | Verify backup file integrity |
| | data compress | Compress images |
**Examples:**
```bash
host-image-backup backup start oss
hib backup start oss
host-image-backup backup start oss --output ~/Pictures/backup --limit 100
hib backup start oss --output ~/Pictures/backup --limit 100
host-image-backup backup start imgur --config ./my-config.yaml --verbose
hib backup start imgur --config ./my-config.yaml --verbose
host-image-backup backup start github --no-skip-existing
hib backup start github --no-skip-existing
host-image-backup backup all --output ~/backup --limit 50 --verbose
hib backup all --output ~/backup --limit 50 --verbose
```
**Global options:**
```bash
-c, --config PATH Custom config file path
-v, --verbose Enable verbose logging
--help Show help message
```
---
## Use Cases
- Backup and migrate images from cloud providers to local storage
- Aggregate images from multiple services
- Automate scheduled backups (cron jobs, CI/CD)
- Archive management for organized local image storage
- Disaster recovery: maintain offline copies
**Examples:**
```bash
host-image-backup backup all --output ~/PhotoBackup
hib backup all --output ~/PhotoBackup
# Scheduled backup (cron)
0 2 * * * /usr/local/bin/host-image-backup backup all --output /backup/images --limit 100
0 2 * * * /usr/local/bin/hib backup all --output /backup/images --limit 100
# Migration between providers
host-image-backup backup start old-provider --output ./migration-temp
hib backup start old-provider --output ./migration-temp
```
---
## Troubleshooting
**Authentication errors:**
- Check credentials and config file format
- Verify token expiration and permissions
- Test providers: `host-image-backup provider test <provider>`
**Network issues:**
- Check internet connection
- Increase timeout in config
- Use `--verbose` for details
- Check provider service status
**File system errors:**
- Ensure output directory exists and is writable
```bash
mkdir -p ~/backup && chmod 755 ~/backup
chmod 600 ~/.config/host-image-backup/config.yaml
```
**Rate limiting:**
- Lower `max_concurrent_downloads`
- Add delays between requests
- Use `--limit` to control download volume
**Debugging:**
```bash
host-image-backup provider test oss --verbose
hib provider test oss --verbose
host-image-backup provider info github
hib provider info github
host-image-backup backup start imgur --verbose --limit 5
hib backup start imgur --verbose --limit 5
```
**Log analysis:**
```bash
tail -f logs/host_image_backup_*.log
grep -i error logs/host_image_backup_*.log
grep -E "(Successfully|Failed)" logs/host_image_backup_*.log
```
---
## Security
- Never commit credentials to version control
- Use environment variables for sensitive data
- Set restrictive permissions on config files:
```bash
chmod 600 ~/.config/host-image-backup/config.yaml
```
**Environment variable example:**
```bash
export OSS_ACCESS_KEY_ID="your_key"
export OSS_ACCESS_KEY_SECRET="your_secret"
export GITHUB_TOKEN="ghp_your_token"
```
Reference in config:
```yaml
providers:
oss:
access_key_id: "${OSS_ACCESS_KEY_ID}"
access_key_secret: "${OSS_ACCESS_KEY_SECRET}"
```
- Use HTTPS endpoints
- Consider VPN/private networks for sensitive data
---
## Development
**Setup:**
```bash
git clone https://github.com/WayneXuCN/HostImageBackup.git
cd HostImageBackup
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
uv lock
uv sync --all-extras
pre-commit install
```
**Testing:**
```bash
pytest
pytest --cov=src/host_image_backup
pytest tests/test_config.py
pytest -v
```
**Code quality:**
```bash
ruff format src tests
mypy src
ruff check src tests
make lint
```
**Add new providers:**
1. Create provider class in `src/host_image_backup/providers/`
2. Implement required methods from `BaseProvider`
3. Add config class in `src/host_image_backup/config.py`
4. Update provider registry in service/CLI
5. Add tests
6. Update documentation
---
## Roadmap
**Planned features:**
- Enhanced error handling
- Configuration validation
- Progress persistence for interrupted backups
- Performance optimization
**Future versions:**
- Web UI for configuration and monitoring
- Advanced filtering (date, type, size)
- Cloud-to-cloud transfers
- Incremental backups
**Additional providers:**
- Cloudinary
- AWS S3
- Google Drive
- Dropbox
- OneDrive
---
## Contributing
Contributions are welcome!
- Report bugs and request features
- Improve documentation and examples
- Add or enhance providers
- Write tests and improve coverage
- Improve CLI and user experience
---
## License
MIT License. See [LICENSE](LICENSE) for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "host-image-backup",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "CLI, backup, host, image, oss",
"author": null,
"author_email": "Wenjie Xu <wenjie.xu.cn@outlook.com>",
"download_url": "https://files.pythonhosted.org/packages/61/f5/d4b4f68ffcd6fd0be69b9f066dae6288143daa1ff66ddefe8bc21665e4e9/host_image_backup-0.1.2.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <h1>Host Image Backup</h1>\n</div>\n\n<div align=\"center\">\n <a href=\"README.md\"><b>English</b></a> | <a href=\"README.zh-CN.md\"><b>\u7b80\u4f53\u4e2d\u6587</b></a>\n</div>\n\n<p align=\"center\">\n <a href=\"https://pypi.org/project/host-image-backup/\">\n <img src=\"https://img.shields.io/pypi/v/host-image-backup?color=blue\" alt=\"PyPI\">\n </a>\n <img src=\"https://img.shields.io/github/stars/WayneXuCN/HostImageBackup?style=social\" alt=\"GitHub stars\">\n <img src=\"https://img.shields.io/github/license/WayneXuCN/HostImageBackup\" alt=\"License\">\n</p>\n\n> **Host Image Backup** is a modular Python CLI tool for backing up images from various image hosting services to your local machine with ease.\n\n## Features\n\n- Modular architecture: Easily extend with new providers\n- Multi-provider support: Aliyun OSS, Tencent COS, SM.MS, Imgur, GitHub\n- Visual progress: Progress bars for backup operations\n- Rich CLI interface: Intuitive command-line experience\n- Flexible configuration: YAML-based config management\n- Resume support: Continue interrupted transfers\n- Comprehensive logging: Detailed operation logs\n- Well tested: Reliable with test coverage\n- Upload support: Upload images to cloud storage\n- Metadata management: Track backup operations and files\n- Batch operations: Upload multiple files at once\n- Duplicate detection: Find and manage duplicate files\n- Image compression: High fidelity compression with quality control\n\n---\n\n## Supported Providers\n\n| Provider | Features | Notes |\n|------------|---------------------------------------------|----------------------------------|\n| OSS | List, backup, upload, delete, file info | Requires Aliyun credentials |\n| COS | List, backup, upload, delete, file info | Requires Tencent credentials |\n| SM.MS | List, backup | Public API, rate limits apply |\n| Imgur | List, backup | Requires Imgur client ID/secret |\n| GitHub | List, backup | Requires GitHub token & access |\n\n---\n\n## Installation\n\n**Requirements:**\n\n- Python 3.10 or newer\n- pip or uv package manager\n\n**Install from PyPI:**\n\n```bash\npip install host-image-backup\npip install --upgrade host-image-backup\nhost-image-backup --help\nhib --help\n```\n\n**Development install:**\n\n```bash\ngit clone https://github.com/WayneXuCN/HostImageBackup.git\ncd HostImageBackup\nuv lock\nuv sync --all-extras\n# Or use pip:\npip install -e \".[dev]\"\n```\n\n---\n\n## Configuration\n\n**Quick start:**\n\n```bash\nhost-image-backup init\n# Edit config file:\n# Linux/macOS: ~/.config/host-image-backup/config.yaml\n# Windows: %APPDATA%/host-image-backup/config.yaml\n```\n\n**Example configuration:**\n\n```yaml\ndefault_output_dir: \"./backup\"\nmax_concurrent_downloads: 5\ntimeout: 30\nretry_count: 3\nlog_level: \"INFO\"\nproviders:\n oss:\n enabled: true\n access_key_id: \"your_access_key\"\n access_key_secret: \"your_secret_key\"\n bucket: \"your_bucket_name\"\n endpoint: \"oss-cn-hangzhou.aliyuncs.com\"\n prefix: \"images/\"\n cos:\n enabled: false\n secret_id: \"your_secret_id\"\n secret_key: \"your_secret_key\"\n bucket: \"your_bucket_name\"\n region: \"ap-guangzhou\"\n prefix: \"images/\"\n sms:\n enabled: false\n api_token: \"your_api_token\"\n imgur:\n enabled: false\n client_id: \"your_client_id\"\n client_secret: \"your_client_secret\"\n access_token: \"your_access_token\"\n refresh_token: \"your_refresh_token\"\n github:\n enabled: false\n token: \"ghp_your_personal_access_token\"\n owner: \"your_username\"\n repo: \"your_repository\"\n path: \"images\"\n```\n\n**Configuration fields:**\n\n| Field | Description | Required | Default |\n|---------------------------|------------------------------------|----------|-------------|\n| default_output_dir | Backup directory | No | \"./backup\" |\n| max_concurrent_downloads | Parallel downloads | No | 5 |\n| timeout | Request timeout (seconds) | No | 30 |\n| retry_count | Retry attempts | No | 3 |\n| log_level | Logging level | No | \"INFO\" |\n| access_key_id | Aliyun OSS access key ID | Yes | - |\n| access_key_secret | Aliyun OSS access key secret | Yes | - |\n| bucket | OSS/COS bucket name | Yes | - |\n| endpoint | OSS endpoint URL | Yes | - |\n| region | COS region | Yes | - |\n| secret_id | Tencent COS secret ID | Yes | - |\n| secret_key | Tencent COS secret key | Yes | - |\n| api_token | SM.MS API token | Yes | - |\n| client_id | Imgur client ID | Yes | - |\n| client_secret | Imgur client secret | Yes | - |\n| access_token | Imgur access token | Yes | - |\n| refresh_token | Imgur refresh token | No | - |\n| token | GitHub token | Yes | - |\n| owner | GitHub repo owner | Yes | - |\n| repo | GitHub repo name | Yes | - |\n| path | Folder path in repo | No | \"\" |\n\n---\n\n## CLI Usage\n\n**Quick start:**\n\n```bash\nhost-image-backup config init\nhib config init\nhost-image-backup provider test oss\nhib provider test oss\nhost-image-backup provider list\nhib provider list\nhost-image-backup backup start oss --output ./my-backup\nhib backup start oss --output ./my-backup\nhost-image-backup backup all --output ./full-backup\nhib backup all --output ./full-backup\n```\n\n**Command groups:**\n\n| Group | Command | Description |\n|------------|------------------------|------------------------------------|\n| Config | config init | Initialize configuration file |\n| Provider | provider list | List providers |\n| | provider test | Test provider connection |\n| | provider info | Show provider info |\n| Backup | backup start | Backup from specific provider |\n| | backup all | Backup from all enabled providers |\n| Upload | upload file | Upload single image |\n| | upload directory | Upload multiple images |\n| Data | data stats | Show backup statistics |\n| | data history | Show backup history |\n| | data duplicates | Find duplicate files |\n| | data cleanup | Clean up backup files |\n| | data verify | Verify backup file integrity |\n| | data compress | Compress images |\n\n**Examples:**\n\n```bash\nhost-image-backup backup start oss\nhib backup start oss\nhost-image-backup backup start oss --output ~/Pictures/backup --limit 100\nhib backup start oss --output ~/Pictures/backup --limit 100\nhost-image-backup backup start imgur --config ./my-config.yaml --verbose\nhib backup start imgur --config ./my-config.yaml --verbose\nhost-image-backup backup start github --no-skip-existing\nhib backup start github --no-skip-existing\nhost-image-backup backup all --output ~/backup --limit 50 --verbose\nhib backup all --output ~/backup --limit 50 --verbose\n```\n\n**Global options:**\n\n```bash\n-c, --config PATH Custom config file path\n-v, --verbose Enable verbose logging\n--help Show help message\n```\n\n---\n\n## Use Cases\n\n- Backup and migrate images from cloud providers to local storage\n- Aggregate images from multiple services\n- Automate scheduled backups (cron jobs, CI/CD)\n- Archive management for organized local image storage\n- Disaster recovery: maintain offline copies\n\n**Examples:**\n\n```bash\nhost-image-backup backup all --output ~/PhotoBackup\nhib backup all --output ~/PhotoBackup\n\n# Scheduled backup (cron)\n0 2 * * * /usr/local/bin/host-image-backup backup all --output /backup/images --limit 100\n0 2 * * * /usr/local/bin/hib backup all --output /backup/images --limit 100\n\n# Migration between providers\nhost-image-backup backup start old-provider --output ./migration-temp\nhib backup start old-provider --output ./migration-temp\n```\n\n---\n\n## Troubleshooting\n\n**Authentication errors:**\n\n- Check credentials and config file format\n- Verify token expiration and permissions\n- Test providers: `host-image-backup provider test <provider>`\n\n**Network issues:**\n\n- Check internet connection\n- Increase timeout in config\n- Use `--verbose` for details\n- Check provider service status\n\n**File system errors:**\n\n- Ensure output directory exists and is writable\n\n```bash\nmkdir -p ~/backup && chmod 755 ~/backup\nchmod 600 ~/.config/host-image-backup/config.yaml\n```\n\n**Rate limiting:**\n\n- Lower `max_concurrent_downloads`\n- Add delays between requests\n- Use `--limit` to control download volume\n\n**Debugging:**\n\n```bash\nhost-image-backup provider test oss --verbose\nhib provider test oss --verbose\nhost-image-backup provider info github\nhib provider info github\nhost-image-backup backup start imgur --verbose --limit 5\nhib backup start imgur --verbose --limit 5\n```\n\n**Log analysis:**\n\n```bash\ntail -f logs/host_image_backup_*.log\ngrep -i error logs/host_image_backup_*.log\ngrep -E \"(Successfully|Failed)\" logs/host_image_backup_*.log\n```\n\n---\n\n## Security\n\n- Never commit credentials to version control\n- Use environment variables for sensitive data\n- Set restrictive permissions on config files:\n\n```bash\nchmod 600 ~/.config/host-image-backup/config.yaml\n```\n\n**Environment variable example:**\n\n```bash\nexport OSS_ACCESS_KEY_ID=\"your_key\"\nexport OSS_ACCESS_KEY_SECRET=\"your_secret\"\nexport GITHUB_TOKEN=\"ghp_your_token\"\n```\n\nReference in config:\n\n```yaml\nproviders:\n oss:\n access_key_id: \"${OSS_ACCESS_KEY_ID}\"\n access_key_secret: \"${OSS_ACCESS_KEY_SECRET}\"\n```\n\n- Use HTTPS endpoints\n- Consider VPN/private networks for sensitive data\n\n---\n\n## Development\n\n**Setup:**\n\n```bash\ngit clone https://github.com/WayneXuCN/HostImageBackup.git\ncd HostImageBackup\npython -m venv .venv\nsource .venv/bin/activate # Linux/macOS\n# .venv\\Scripts\\activate # Windows\nuv lock\nuv sync --all-extras\npre-commit install\n```\n\n**Testing:**\n\n```bash\npytest\npytest --cov=src/host_image_backup\npytest tests/test_config.py\npytest -v\n```\n\n**Code quality:**\n\n```bash\nruff format src tests\nmypy src\nruff check src tests\nmake lint\n```\n\n**Add new providers:**\n\n1. Create provider class in `src/host_image_backup/providers/`\n2. Implement required methods from `BaseProvider`\n3. Add config class in `src/host_image_backup/config.py`\n4. Update provider registry in service/CLI\n5. Add tests\n6. Update documentation\n\n---\n\n## Roadmap\n\n**Planned features:**\n\n- Enhanced error handling\n- Configuration validation\n- Progress persistence for interrupted backups\n- Performance optimization\n\n**Future versions:**\n\n- Web UI for configuration and monitoring\n- Advanced filtering (date, type, size)\n- Cloud-to-cloud transfers\n- Incremental backups\n\n**Additional providers:**\n\n- Cloudinary\n- AWS S3\n- Google Drive\n- Dropbox\n- OneDrive\n\n---\n\n## Contributing\n\nContributions are welcome!\n\n- Report bugs and request features\n- Improve documentation and examples\n- Add or enhance providers\n- Write tests and improve coverage\n- Improve CLI and user experience\n\n---\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python-based command-line tool for backing up images from multiple image hosting services to local storage",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://waynexucn.github.io/app/HostImageBackup/index.html",
"Issues": "https://github.com/WayneXuCN/HostImageBackup/issues",
"Repository": "https://github.com/WayneXuCN/HostImageBackup"
},
"split_keywords": [
"cli",
" backup",
" host",
" image",
" oss"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a1ed1c2d5d796be64907a705ef19b4ef11e196f27d5bc6d36fe46ea7475e2c53",
"md5": "57be6465299169c7d11ff26e2ea89d73",
"sha256": "81b4f78a51518cdf3f7edc55212d0a7968da9b939c03786af1e59c4773316554"
},
"downloads": -1,
"filename": "host_image_backup-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "57be6465299169c7d11ff26e2ea89d73",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 39948,
"upload_time": "2025-08-15T11:30:22",
"upload_time_iso_8601": "2025-08-15T11:30:22.310821Z",
"url": "https://files.pythonhosted.org/packages/a1/ed/1c2d5d796be64907a705ef19b4ef11e196f27d5bc6d36fe46ea7475e2c53/host_image_backup-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "61f5d4b4f68ffcd6fd0be69b9f066dae6288143daa1ff66ddefe8bc21665e4e9",
"md5": "bd096e3f4bbb385145d721109cfd197a",
"sha256": "aeed66c8afe062541e231d1a9300c329e7ef9f366bbec249939b46a7ebe5ec65"
},
"downloads": -1,
"filename": "host_image_backup-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "bd096e3f4bbb385145d721109cfd197a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 114966,
"upload_time": "2025-08-15T11:30:24",
"upload_time_iso_8601": "2025-08-15T11:30:24.116818Z",
"url": "https://files.pythonhosted.org/packages/61/f5/d4b4f68ffcd6fd0be69b9f066dae6288143daa1ff66ddefe8bc21665e4e9/host_image_backup-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 11:30:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "WayneXuCN",
"github_project": "HostImageBackup",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "host-image-backup"
}