aliyun / alibabacloud-oss-go-sdk-v2

Alibaba Cloud OSS SDK for Go v2
Apache License 2.0
20 stars 1 forks source link

认证问题 #65

Open lin-chong opened 20 hours ago

lin-chong commented 20 hours ago

专有云尝试使用ossv2版本出错 Put "https://xxxx/xxx.xlsx": tls: failed to verify certificate: x509: “*.xxx certificate is not standards compliant

使用WithInsecureSkipVerify(true)后出现 panic: operation error PutObject: Error returned by Service. Http Status Code: 400. Error Code: InvalidArgument. Request Id: xxxx. Message: Authorization header is invalid.. EC: . Timestamp: 2024-10-25 09:38:00 +0000 UTC. Request Endpoint: PUT

代码

  func InitOss2(accessKeyID, accessKeySecret, endpoint, bucket string) {
    _provider = credentials.NewStaticCredentialsProvider(accessKeyID, accessKeySecret)

    cfg := oss2.LoadDefaultConfig().WithCredentialsProvider(_provider).WithEndpoint(endpoint).WithRegion("xxxx").WithInsecureSkipVerify(true)
    cfg.Endpoint = &endpoint
    _client2 = oss2.NewClient(cfg)
    _bucket2 = bucket
}

func UploadFile(objectPath string, reader io.Reader) error {
    uploadResult, err := _client2.PutObject(context.TODO(), &oss2.PutObjectRequest{
        Bucket: oss2.Ptr(_bucket2),
        Key:    oss2.Ptr(objectPath),
        Body:   reader,
    })
    if err != nil {
        panic(err)
    }

    slog.Info("etag", uploadResult.ETag)

    return nil }  

所填的aksk endpoint region均正确

huiguangjun commented 20 hours ago

v2 sdk 默认使用 签名版本4 对 请求签名。 对于不支持 v4签名的 专有云 环境,可以 通过 WithSignatureVersion(SignatureVersionV1) 切换成 v1签名。