使用预签名URL直传对象存储 本文基于 golang 和 bash 介绍如何通过预签名 URL 直传对象存储。 操作背景 对象存储 SDK 提供的预签名接口可用于生成预签名 URL 。移动端应用可通过预签名 URL 直接上传或下载文件,不需要配备 SDK 和密钥。 操作流程 客户服务器配置好密钥等信息,通过 SDK 生成预签名 URL,随后移动端应用基于预签名 URL 构造 HTTP 请求进行上传或下载操作。 代码示例 相关代码片段如下所示。 生成预签名上传URL 请求示例 golang func PresignPutObjectRequest(s3c s3.S3) { bucket : "examplebucket" key : "examplekey" input : &s3.PutObjectInput{ Bucket: aws.String(bucket), Key: aws.String(key), } // 构造请求 request, : s3c.PutObjectRequest(input) // 设定预签名链接过期时间 expire : 15 time.Minute // 预签名请求 output, err : request.Presign(expire) if err ! nil { fmt.Printf(" Status: Failn Output:n%vn Error:n%vn", output, err) } else { fmt.Printf(" Status: Susccessn Output:n%vn", output) } } 响应示例 生成的预签名 URL 见 Output 部分。 bash Status: Susccess Output: