{"id":23899286,"url":"https://github.com/alphasnow/aliyun-oss-appserver-go","last_synced_at":"2025-11-14T15:03:36.043Z","repository":{"id":266595747,"uuid":"898762086","full_name":"alphasnow/aliyun-oss-appserver-go","owner":"alphasnow","description":"Aliyun oss signature direct transmission. 阿里云服务端签名直传OSS扩展包.","archived":false,"fork":false,"pushed_at":"2025-01-16T02:52:04.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-16T03:31:40.420Z","etag":null,"topics":["aliyun","aliyun-oss","aliyun-sdk","appserver","golang","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/alphasnow.png","metadata":{"files":{"readme":"README-CN.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-12-05T01:37:52.000Z","updated_at":"2025-01-16T02:47:40.000Z","dependencies_parsed_at":"2024-12-05T04:27:32.244Z","dependency_job_id":"ca6f11ac-328b-4617-a7d6-608541679551","html_url":"https://github.com/alphasnow/aliyun-oss-appserver-go","commit_stats":null,"previous_names":["alphasnow/aliyun-oss-appserver-go"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasnow%2Faliyun-oss-appserver-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasnow%2Faliyun-oss-appserver-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasnow%2Faliyun-oss-appserver-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasnow%2Faliyun-oss-appserver-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alphasnow","download_url":"https://codeload.github.com/alphasnow/aliyun-oss-appserver-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240288742,"owners_count":19777721,"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","aliyun-oss","aliyun-sdk","appserver","golang","oss"],"created_at":"2025-01-04T18:17:14.057Z","updated_at":"2025-11-14T15:03:36.034Z","avatar_url":"https://github.com/alphasnow.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | 简体中文\n\n# aliyun-oss-appserver-go\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/alphasnow/aliyun-oss-appserver-go)\n\n通过 Web 端上传数据到 OSS. 服务端签名直传并设置上传回调.\n\n## 安装\n\n```shell\ngo get -u github.com/alphasnow/aliyun-oss-appserver-go\n```\n\n## 示例\n\n### 生成授权\n\n```go\ntoken := appserver.NewToken(\u0026appserver.Config{\n    AccessKeyId:     \"yourAccessKeyId\",\n    AccessKeySecret: \"yourAccessKeySecret\",\n    Host:            \"https://bucket-name.oss-cn-hangzhou.aliyuncs.com\",\n    Directory:       \"user-dir-prefix/\",\n    ExpireSecond:    600,\n    // 回调只支持 PutObject, PostObject, CompleteMultipartUpload\n    CallbackUrl:     \"http://domain.com/oss/callback\",\n})\npostToken, _ := token.Generate()\npostTokenJson, _ := json.Marshal(postToken)\n//{\n//    \"OSSAccessKeyId\": \"yourAccessKeyId\",\n//    \"policy\": \"eyJleHBpcmF0aW9uIjoiMjAyNS0wMS0wMVQwMDowMDowMFoiLCJjb25kaXRpb25zIjpbWyJzdGFydHMtd2l0aCIsIiRrZXkiLCJ1c2VyLWRpci1wcmVmaXgvIl1dfQ==\",\n//    \"callback\": \"eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9kb21haW4uY29tL29zcy9jYWxsYmFjayIsImNhbGxiYWNrQm9keSI6IntcImJ1Y2tldFwiOiR7YnVja2V0fSxcIm9iamVjdFwiOiR7b2JqZWN0fSxcImV0YWdcIjoke2V0YWd9LFwic2l6ZVwiOiR7c2l6ZX0sXCJtaW1lVHlwZVwiOiR7bWltZVR5cGV9LFwiaW1hZ2VJbmZvXCI6e1wiaGVpZ2h0XCI6JHtpbWFnZUluZm8uaGVpZ2h0fSxcIndpZHRoXCI6JHtpbWFnZUluZm8ud2lkdGh9LFwiZm9ybWF0XCI6JHtpbWFnZUluZm8uZm9ybWF0fX0sXCJjcmM2NFwiOiR7Y3JjNjR9LFwiY29udGVudE1kNVwiOiR7Y29udGVudE1kNX0sXCJ2cGNJZFwiOiR7dnBjSWR9LFwiY2xpZW50SXBcIjoke2NsaWVudElwfSxcInJlcUlkXCI6JHtyZXFJZH0sXCJvcGVyYXRpb25cIjoke29wZXJhdGlvbn19IiwiY2FsbGJhY2tCb2R5VHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifQ==\",\n//    \"signature\": \"uXL82wU5IGCd7vcZKX9gua5TUJs=\",\n//    \"host\": \"https://bucket-name.oss-cn-hangzhou.aliyuncs.com\",\n//    \"expire\": 1735689600,\n//    \"directory\": \"user-dir-prefix/\"\n//}\n```\n\n## 上传文件\n\n```bash\ncurl --location \"https://bucket-name.oss-cn-hangzhou.aliyuncs.com\" \\\n--form 'key=\"user-dir-prefix/${filename}\"' \\\n--form 'policy=\"eyJleHBpcmF0aW9uIjoiMjAyNS0wMS0wMVQwMDowMDowMFoiLCJjb25kaXRpb25zIjpbWyJzdGFydHMtd2l0aCIsIiRrZXkiLCJ1c2VyLWRpci1wcmVmaXgvIl1dfQ==\"' \\\n--form 'OSSAccessKeyId=\"yourAccessKeyId\"' \\\n--form 'callback=\"eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9kb21haW4uY29tL29zcy9jYWxsYmFjayIsImNhbGxiYWNrQm9keSI6IntcImJ1Y2tldFwiOiR7YnVja2V0fSxcIm9iamVjdFwiOiR7b2JqZWN0fSxcImV0YWdcIjoke2V0YWd9LFwic2l6ZVwiOiR7c2l6ZX0sXCJtaW1lVHlwZVwiOiR7bWltZVR5cGV9LFwiaW1hZ2VJbmZvXCI6e1wiaGVpZ2h0XCI6JHtpbWFnZUluZm8uaGVpZ2h0fSxcIndpZHRoXCI6JHtpbWFnZUluZm8ud2lkdGh9LFwiZm9ybWF0XCI6JHtpbWFnZUluZm8uZm9ybWF0fX0sXCJjcmM2NFwiOiR7Y3JjNjR9LFwiY29udGVudE1kNVwiOiR7Y29udGVudE1kNX0sXCJ2cGNJZFwiOiR7dnBjSWR9LFwiY2xpZW50SXBcIjoke2NsaWVudElwfSxcInJlcUlkXCI6JHtyZXFJZH0sXCJvcGVyYXRpb25cIjoke29wZXJhdGlvbn19IiwiY2FsbGJhY2tCb2R5VHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifQ==\"' \\\n--form 'signature=\"uXL82wU5IGCd7vcZKX9gua5TUJs=\"' \\\n--form 'file=@\"~/Downloads/image.jpg\"'\n```\n\n## 回调验证\n\n```go\naliyunOSSCallback := appserver.NewAliyunOSSCallback(request)\ncallbackBody,err := aliyunOSSCallback.VerifySignature()\n//{\n//    \"bucket\": \"bucket-name\",\n//    \"object\": \"user-dir-prefix/image.jpg\",\n//    \"etag\": \"A3AC1B2FAADBD*****EE9F5EA57CAACB\",\n//    \"size\": 2788,\n//    \"mimeType\": \"image/jpeg\",\n//    \"imageInfo\": {\n//        \"height\": 197,\n//        \"width\": 257,\n//        \"format\": \"jpg\"\n//    },\n//    \"crc64\": 34616313***72852000,\n//    \"contentMd5\": \"o6wbL6rb0***7p9epXyqyw==\",\n//    \"vpcId\": null,\n//    \"clientIp\": \"100.20.30.40\",\n//    \"reqId\": \"674EB5AA2*****37341888F8\",\n//    \"operation\": \"PutObject\"\n//}\n```\n\n## 参考\n\n- 参考代码 [aliyun-oss-appserver-go-master.zip](https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20240710/zbucef/aliyun-oss-appserver-go-master.zip)\n- 参考文档 [https://www.alibabacloud.com/help/en/oss/use-cases/go-1](https://www.alibabacloud.com/help/en/oss/use-cases/go-1)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphasnow%2Faliyun-oss-appserver-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falphasnow%2Faliyun-oss-appserver-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphasnow%2Faliyun-oss-appserver-go/lists"}