{"id":17954349,"url":"https://github.com/txthinking/cloudupload","last_synced_at":"2025-03-25T00:31:58.121Z","repository":{"id":57586688,"uuid":"152091249","full_name":"txthinking/cloudupload","owner":"txthinking","description":" Upload files to multiple Cloud Storage in parallel. Automatically apply for ssl certificate with your domain.","archived":false,"fork":false,"pushed_at":"2022-05-26T02:43:57.000Z","size":20,"stargazers_count":26,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-19T05:55:56.620Z","etag":null,"topics":["aliyun-oss","cloud","cloud-storage","google-cloud","storage","tencent-cos","upload"],"latest_commit_sha":null,"homepage":"","language":"Go","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/txthinking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://www.txthinking.com/opensource-support.html"}},"created_at":"2018-10-08T14:12:10.000Z","updated_at":"2024-11-10T02:13:52.000Z","dependencies_parsed_at":"2022-09-17T20:50:31.271Z","dependency_job_id":null,"html_url":"https://github.com/txthinking/cloudupload","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/txthinking%2Fcloudupload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/txthinking%2Fcloudupload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/txthinking%2Fcloudupload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/txthinking%2Fcloudupload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/txthinking","download_url":"https://codeload.github.com/txthinking/cloudupload/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245377921,"owners_count":20605374,"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":["aliyun-oss","cloud","cloud-storage","google-cloud","storage","tencent-cos","upload"],"created_at":"2024-10-29T10:14:11.329Z","updated_at":"2025-03-25T00:31:57.275Z","avatar_url":"https://github.com/txthinking.png","language":"Go","funding_links":["https://www.txthinking.com/opensource-support.html"],"categories":[],"sub_categories":[],"readme":"# Cloud Upload\n\nUpload files to multiple Cloud Storage in parallel. Automatically apply for ssl certificate with your domain.\n\n### Install via [nami](https://github.com/txthinking/nami)\n\n```\n$ nami install cloudupload\n```\n\nor download from [releases](https://github.com/txthinking/cloudupload/releases) or `go get github.com/txthinking/cloudupload/cli/cloudupload` or embed lib `go get github.com/txthinking/cloudupload`\n\n### Usage\n\n```\nNAME:\n   Cloud Upload - Upload files to multiple cloud storage in parallel\n\nUSAGE:\n   main [global options] command [command options] [arguments...]\n\nVERSION:\n   20200411\n\nAUTHOR:\n   Cloud \u003ccloud@txthinking.com\u003e\n\nCOMMANDS:\n   help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --debug, -d                       Enable debug, more logs (default: false)\n   --debugListen value, -l value     Listen address for debug (default: \"127.0.0.1:6060\")\n   --listen value                    Listen address\n   --domain value                    If domain is specified, 80 and 443 ports will be used. Listen address is no longer needed\n   --maxBodySize value               Max size of http body, M (default: 0)\n   --timeout value                   Read timeout, write timeout x2, idle timeout x20, s (default: 0)\n   --origin value                    Allow origins for CORS, can repeat more times. like https://google.com\n   --enableLocal                     Enable local store (default: false)\n   --localStorage value              Local directory path\n   --enableGoogle                    Enable google store (default: false)\n   --googleServiceAccountFile value  Google service account file\n   --googleBucket value              Google bucket name\n   --enableAliyun                    Enable aliyun OSS (default: false)\n   --aliyunAccessKeyID value         Aliyun access key id\n   --aliyunAccessKeySecret value     Aliyun access key secret\n   --aliyunEndpoint value            Aliyun endpoint, like: https://oss-cn-shanghai.aliyuncs.com\n   --aliyunBucket value              Aliyun bucket name\n   --enableTencent                   Enable Tencent (default: false)\n   --tencentSecretId value           Tencent secret id\n   --tencentSecretKey value          Tencent secret key\n   --tencentHost value               domain\n   --help, -h                        show help (default: false)\n   --version, -v                     print the version (default: false)\n\nCOPYRIGHT:\n   https://github.com/txthinking/cloudupload\n```\n\n### Upload\n\n#### Request\n\n-   Method: `POST`\n-   Header:\n    -   `Accept`: `application/json` or `text/plain`\n    -   `Content-Type`: `application/octet-stream`, `application/base64` or `multipart/form-data...` with `file` field\n    -   `X-File-Name`: full file name with suffix, only required when `Content-Type` is `application/octet-stream` or `application/base64`\n-   Body: binary file content, base64 encoded file content or multipart form data\n\n#### Response\n\n-   Status Code: 200\n    -   Content-Type: `application/json` or `text/plain; charset=utf-8`\n    -   Body: `{ \"file\": \"file path\" }` or `file path`\n-   Status Code: !200\n    -   Content-Type: `text/plain; charset=utf-8`\n    -   Body: `error message`\n\n### Example\n\n    $ curl -H 'Content-Type: application/octet-stream' -H 'X-File-Name: Angry.png' --data-binary @Angry.png https://yourdomain.com\n    vbpovzsdzbxu/Angry.png\n\n    $ curl -F 'file=@Angry.png' https://yourdomain.com\n    vbpovzsdzbxu/Angry.png\n\n## Author\n\nA project by [txthinking](https://www.txthinking.com)\n\n## License\n\nLicensed under The MIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftxthinking%2Fcloudupload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftxthinking%2Fcloudupload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftxthinking%2Fcloudupload/lists"}