2 回答
TA贡献1784条经验 获得超9个赞
预签名的 URL 请求只需要 Tagging 字段下的标签。当您使用此 URL 发出请求时,即您传递带有“x-amz-tagging”作为键和标签的标头(例如,“temp=true&public=yes”)。
下面是一个使用预签名 url 上传带有标签的图像(通过标题)的示例,该 url 也被请求带有标签(带有标签)。
const uploadImage = async (filepath, presignedURL) => {
const headers = new Headers();
headers.append('x-amz-tagging', 'temp=true&public=yes');
const response = await fetch(filepath);
const blob = await response.blob();
return await fetch(
presignedURL,
{
method: 'PUT',
body: blob,
headers,
},
);
};
TA贡献1864条经验 获得超6个赞
如果我没记错的话,您可以像这样添加元数据:
'Bucket': 'bucket',
'Key': 'signed.json',
'Metadata': {
'x-amz-tagging': 'whatever'
},
所以它看起来像这样:
// Upload generates a new URL where a file can be uploaded
func (s *S3) Upload(key string, c Config) (string, error) {
req, _ := s.client.PutObjectRequest(&s3.PutObjectInput{
Bucket: aws.String(s.bucketName),
Key: aws.String(key),
Body: {
'x-amz-tagging': 'whatever'
},
})
return req.Presign(c.ExpiresIn)
}
我是即时写的,所以它可能不起作用,需要一些调整。请参阅文档 - 但它应该看起来像这样。测试一下,让我知道。
在此处阅读更多信息:https ://docs.aws.amazon.com/sdk-for-go/api/service/s3/#PutObjectInput
- 2 回答
- 0 关注
- 143 浏览
添加回答
举报