{"id":37212979,"url":"https://github.com/linlanniao/soss","last_synced_at":"2026-01-15T00:32:02.614Z","repository":{"id":229469321,"uuid":"776671763","full_name":"linlanniao/soss","owner":"linlanniao","description":"Utility tool to upload encrypted files to Aliyun OSS","archived":false,"fork":false,"pushed_at":"2024-04-02T09:33:39.000Z","size":68,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T12:22:34.712Z","etag":null,"topics":["encrypt","fileupload","oss"],"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/linlanniao.png","metadata":{"files":{"readme":"README.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":"2024-03-24T06:28:04.000Z","updated_at":"2024-04-04T08:13:08.000Z","dependencies_parsed_at":"2024-03-29T16:46:41.880Z","dependency_job_id":"e35f0616-cc5e-4d64-8eed-77222ce48a7b","html_url":"https://github.com/linlanniao/soss","commit_stats":null,"previous_names":["linlanniao/soss"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/linlanniao/soss","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linlanniao%2Fsoss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linlanniao%2Fsoss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linlanniao%2Fsoss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linlanniao%2Fsoss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linlanniao","download_url":"https://codeload.github.com/linlanniao/soss/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linlanniao%2Fsoss/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28439715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T22:37:52.437Z","status":"ssl_error","status_checked_at":"2026-01-14T22:37:31.496Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["encrypt","fileupload","oss"],"created_at":"2026-01-15T00:32:02.073Z","updated_at":"2026-01-15T00:32:02.597Z","avatar_url":"https://github.com/linlanniao.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SOSS (Secure Object Storage Service)\n\n一个可以在把文件上传到s3存储, 上传之前加密文件内容，下载时自动解密的小工具。  \n目前适配了阿里云OSS, 后续再扩展.    \n\n## 参考\n**[参考高天大佬的 soss 工具](https://github.com/gaogaotiantian/soss)**\n此项目为soss的go版本, 逻辑作出了如下几点的修改:\n1. 将oss-sdk与controller逻辑分离, 后续可以方便的扩展更多的s3对象存储支持;\n2. 将原来的**加密**的逻辑, 改为**加密+压缩**, 在文件较大的情况下可以节省空间, *但可能会导致工具运行时候消耗更多内存;*\n3. 上传、下载改用了并行处理, 处理多个文件时候能提高性能\n\n\n## 安装\n### [Download the latest binary](https://github.com/linlanniao/soss/releases/latest)\n\n\u003e 下载二进制文件, 解压缩并保存至`/usr/local/bin/soss`\n\n\n## 准备工作\n### AccessKey 和 Access Key Secret\n以阿里云为例, 在你的阿里云管理系统内，找到下面的内容：\n* OSS Bucket的endpoint（例如`oss-cn-hangzhou.aliyuncs.com`）\n* OSS Bucket的名字\n* 你的用户的access key（推荐使用RAM用户）\n    * `export S3_ACCESS_KEY_ID=\u003cKEY ID\u003e`\n    * `export S3_ACCESS_KEY_SECRET=\u003cKEY SECRET\u003e`\n\n\n### 配置文件\n在`config.yaml`中，配置好`client_type` `endpoint`和`bucket`\n\n### config.yaml example\n```yaml\n# oss client 的类型, 目前只支持 “阿里云oss” 后续可能会扩展更多\nclient_type: oss\n\n# bucket的名字\nbucket: ppops-bucket\n\n# endpoint 地址, 注意带上http/https\nendpoint: https://oss-cn-guangzhou.aliyuncs.com \n```\n* 将配置文件保存在 `$HOME/.soss/config.yaml` 或者当前目录 `./config.yaml`  \n\n如果不想使用`config.yaml`，也可以在命令行作为参数输入。\n\n\n## 使用说明\n\n### 文件列表\n\n```\n# 如果配置好了config.json\nsoss list\n或\nsoss ls\n\nsoss ls --prefix data/\n\n# 如果想在命令行输入bucket和endpoint\nsoss ls -b bucket_name -e endpoint\n```\n\n### 上传文件\n\n```\nsoss upload -k my_password text.txt image.png\n或\nsoss up -k my_password  text.txt image.png\n\n# 支持上传整个文件夹的内容，文件夹所有内容会保持结构上传到bucket根目录\nsoss upload -k my_password data/\n\n# 设置bucket保存路径的prefix，文件夹所有内容会保持结构上传到data/目录\nsoss upload -k my_password --prefix data/ data/\n\n# 如果encrypt key是一个32或者64位的hex，则直接作为AES的key使用，否则进行SHA256，转换成32 byte的key\nsoss upload -k deadbeef12345678deadbeef87654321 text.txt\n\n# 同样也可以传入bucket和endpoint\nsoss upload -b bucket -e endpoint -k my_password text.txt\n```\n\n### 下载文件\n\n```\nsoss download -k my_password text.txt image.png\n\n# 指定保存文件夹\nsoss download -k my_password --output_dir ./data text.txt image.png\n\n# 剩下的参数和upload一样, 具体可以通过-h参数查看\n```\n\n### LICENSE\n\nCopyright 2024 linlanniao.\n\nDistributed under the terms of the [MIT License](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinlanniao%2Fsoss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinlanniao%2Fsoss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinlanniao%2Fsoss/lists"}