{"id":18324810,"url":"https://github.com/luiscib3r/telezon-s3","last_synced_at":"2025-04-06T00:31:03.412Z","repository":{"id":115038236,"uuid":"349206646","full_name":"luiscib3r/Telezon-S3","owner":"luiscib3r","description":"Telezon S3 is a storage service that implements Amazon S3-compatible API using Telegram as the storage backend. It allows you to store and retrieve files using standard S3 clients while leveraging Telegram's infrastructure for actual file storage.","archived":false,"fork":false,"pushed_at":"2024-11-14T23:00:42.000Z","size":181,"stargazers_count":16,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T13:53:18.913Z","etag":null,"topics":["amazon-s3","fastapi","heroku","mongodb","python","telegram","telegram-bot","telezon-s3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luiscib3r.png","metadata":{"files":{"readme":"README.es.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-18T20:20:25.000Z","updated_at":"2025-03-15T08:14:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"257164b1-9ba2-4715-9bb4-d9f443b3ecc7","html_url":"https://github.com/luiscib3r/Telezon-S3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2FTelezon-S3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2FTelezon-S3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2FTelezon-S3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luiscib3r%2FTelezon-S3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luiscib3r","download_url":"https://codeload.github.com/luiscib3r/Telezon-S3/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419597,"owners_count":20936009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon-s3","fastapi","heroku","mongodb","python","telegram","telegram-bot","telezon-s3"],"created_at":"2024-11-05T18:35:52.973Z","updated_at":"2025-04-06T00:31:01.622Z","avatar_url":"https://github.com/luiscib3r.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Telezon S3\n\nTelezon S3 es un servicio de almacenamiento compatible con la API de Amazon S3 que utiliza Telegram como backend de almacenamiento. Permite almacenar y recuperar archivos utilizando clientes S3 estándar.\n\n## Despliegue con Docker\n\nLa forma más sencilla de ejecutar Telezon S3 es utilizando Docker Compose:\n\n1. Clona el repositorio\n2. Copia el archivo de variables de entorno:\n\n```bash\ncp .env.example .env\n```\n\n3. Configura las variables en el archivo `.env`\n4. Inicia los servicios:\n\n```bash\ndocker-compose up -d\n```\n\nEl servicio estará disponible en `http://localhost:8000`\n\n## Documentación de la API\n\nLa documentación interactiva de la API está disponible a través de Swagger UI. Puedes acceder a ella en:\n\n```\nhttp://localhost:8000/docs\n```\n\n## Requisitos para desarrollo\n\n- Python 3.12+\n- Poetry\n- Docker y Docker Compose\n- Una cuenta o bot de Telegram\n- Un canal de Telegram\n\n## Configuración\n\n1. Clona el repositorio\n2. Copia el archivo `.env.example` a `.env` y configura las variables de entorno:\n\n```bash\ncp .env.example .env\n```\n\n### Variables de Entorno Importantes\n\n```env\n# Configuración del Servidor\nPROJECT_NAME='Telezon S3'\nPORT=8000\nSECRET_KEY=your_secret_key\n\n# Configuración de MongoDB\nMONGO_HOST=localhost\nMONGO_PORT=27017\nMONGO_USER=admin\nMONGO_PASSWORD=your_password\nDATABASE_NAME=TelezonS3\n\n# Configuración de Telegram\nBOT_TOKEN=your_bot_token\nCID=your_channel_id\nTELEGRAM_API_ID=your_api_id\nTELEGRAM_API_HASH=your_api_hash\nSESSION_STRING=your_session_string\n```\n\n### Variables de Entorno para Usuario Administrador\n\nEl sistema permite configurar un usuario administrador inicial a través de variables de entorno:\n\n```env\nINITIAL_ADMIN_USER=admin\nINITIAL_ADMIN_PASSWORD=admin\n```\n\nEstas credenciales se utilizarán para crear automáticamente el primer usuario administrador en el sistema durante la inicialización de la base de datos.\n\n## Desarrollo\n\n1. Instala las dependencias:\n\n```bash\npoetry install\n```\n\n2. Inicia el servidor en modo desarrollo:\n\n```bash\nmake dev\n```\n\n### Configuración del Bot y Canal de Telegram\n\n1. Configura el almacenamiento usando `pyrogram` (Recomendado):\n\n```bash\nmake setup_account_storage\n```\n\n2. Configura el almacenamiento usando `python-telegram-bot` (No recomendado):\n\n```bash\nmake setup_bot_storage\n```\n\n## Uso\n\n### Cliente Python (boto3)\n\n```python\nimport boto3\n\ns3 = boto3.client(\n    's3',\n    aws_access_key_id='your_access_key_id',\n    aws_secret_access_key='your_secret_key',\n    endpoint_url='http://localhost:8000'  # O tu URL de producción\n)\n\n# Subir archivo\ns3.upload_file('archivo_local.txt', 'nombre_bucket', 'nombre_destino.txt')\n\n# Descargar archivo\ns3.download_file('nombre_bucket', 'nombre_destino.txt', 'archivo_descargado.txt')\n```\n\n### Script de Subida Rápida\n\nEl proyecto incluye un script de utilidad para subir archivos:\n\n```bash\npoetry run python upload_file.py \\\n --access-key-id tu_access_key_id \\\n --secret-key tu_secret_key \\\n --bucket-name nombre_bucket \\\n --input-path archivo_local.txt \\\n --output-path nombre_destino.txt\n```\n\n## Comandos Make Disponibles\n\n- `make dev`: Inicia el servidor en modo desarrollo\n- `make run`: Inicia el servidor en modo producción\n- `make format`: Formatea el código usando ruff\n- `make setup_bot_storage`: Configura el almacenamiento del bot\n- `make setup_account_storage`: Configura el almacenamiento de la cuenta\n- `make export`: Exporta las dependencias a requirements.txt\n\n## Características\n\n- Compatible con la API de Amazon S3\n- Utiliza Telegram como backend de almacenamiento\n- Soporte para operaciones básicas de S3 (upload/download)\n- Integración con clientes S3 estándar\n\n## Contribuir\n\nLas contribuciones son bienvenidas. Por favor, abre un issue para discutir los cambios propuestos.\n\n## Licencia\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiscib3r%2Ftelezon-s3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluiscib3r%2Ftelezon-s3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiscib3r%2Ftelezon-s3/lists"}