douyi8732 2018-11-30 16:52
浏览 171

如何使用go和aws-sdk覆盖s3预签名PUT URL上的文件名

This code works but results in a filename that when downloaded, has url encodings in its name:

var input = (&s3.PutObjectInput{}).
        SetBucket("io").
        SetKey(filePath)
        resp, _ := svc.PutObjectRequest(input)
        urlStr, err := resp.Presign(15 * time.Minute)

This input:

var input = (&s3.PutObjectInput{}).
        SetBucket("io").
        SetKey(filePath).
        SetContentDisposition("attachment; filename =\""+fileName+"\"")

results in this error message after the url is PUT: There were headers present in the request which were not signed

when I try what's suggested here before signing my request:

resp, _ := svc.PutObjectRequest(input)
resp.HTTPRequest.Header.Add("ResponseContentDisposition:","attachment; filename =\""+fileName+"\"")

I get the same error. Do you know what I'm doing wrong or is there another way to specify the file name with a presigned url?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 划分vlan后不通了
    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大