全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

生成上传外链(Go)

最近更新时间:2024-05-10 14:24:02

以下代码用于生成上传外链:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/s3"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换成真正的值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建S3Client,更多配置项请查看Go-SDK初始化文档
    client := s3.New(&aws.Config{
       Credentials: cre,                          // 访问凭证
       Region:      "BEIJING",                    // 填写您的Region
       Endpoint:    "ks3-cn-beijing.ksyuncs.com", // 填写您的Endpoint
    })
    // 填写存储空间名称
    bucket := "<bucket_name>"
    // 填写对象的key
    key := "<object_key>"
    // 生成上传外链
    url, err := client.GeneratePresignedUrl(&s3.GeneratePresignedUrlInput{
        HTTPMethod:  s3.PUT,                    // 请求方法,可选值有 PUT, GET, DELETE, HEAD,必填
        Bucket:      aws.String(bucket),        // 存储空间名称,必填
        Key:         aws.String(key),           // 对象的key,必填
        Expires:     3600,                      // 过期时间,例如,3600(表示1小时),必填
        ACL:         aws.String("public-read"), // 对象访问权限,非必填
        ContentType: aws.String("text/plain"),  // 文件类型,非必填
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", url)
    
    // 通过外链上传
    httpReq, err := http.NewRequest("PUT", url, strings.NewReader("这是一段测试文本"))
    if err != nil {
        panic(err)
    }
    // 生成外链时传入的请求头参数需要与此处保持一致
    httpReq.Header.Add("x-amz-acl", "public-read")
    httpReq.Header.Add("Content-Type", "text/plain")
    resp, err := http.DefaultClient.Do(httpReq)
    if err != nil {
        panic(err)
    }
    fmt.Println("上传结果:\n", *resp)
}

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈