在AWS -sdk- Go -v2 for Go中添加AWS s3的预设计URL过期



有一个使用aws-sdk-go-v2创建预签名url的非常好的示例。

这个工作得很好,但我被设置过期时间卡住了。我确实看到presignotions结构有一个Expires,但我不确定如何做到这一点。

我也看到WithPresignExpires,但唉,我也不知道如何使用这个例子。

这里可以提供一个例子吗?我正在学围棋,但有些事我掌握不了。

似乎我可以在60分钟到期时这样做。

func GetPresignedURL(c context.Context, api S3PresignGetObjectAPI, input *s3.GetObjectInput) (*v4.PresignedHTTPRequest, error) {
return api.PresignGetObject(c, input, s3.WithPresignExpires(3600*time.Second))
}

您还可以将更多选项传递给PresignGetObject函数(aws s3 sdk示例)

这个例子将产生这个标题X-Amz-Expires=604800这将使链接在7天内可用:

request, err := presigner.PresignClient.PresignGetObject(context.TODO(), &s3.GetObjectInput{
Bucket: aws.String(bucketName),
Key:    aws.String(objectKey),
}, func(opts *s3.PresignOptions) {
opts.Expires = time.Duration(7 * 24 * time.Hour)
})

相关内容

  • 没有找到相关文章

最新更新