【问题标题】:Override the Content-Type when using FineUploader direct to S3 bucket使用 FineUploader 直接到 S3 存储桶时覆盖 Content-Type
【发布时间】:2015-01-27 05:51:19
【问题描述】:

当使用精细上传器将任何文件发送到 s3 时,我想将 Content-Type 覆盖为“application/octet-stream”。

我正在上传视频文件,在检索它们时,我不希望它们被浏览器打开,我总是希望下载它们。

我尝试在签名签名中覆盖它,但上传未通过签名测试。我可以让上传者告诉 s3 将其保存为“应用程序/八位字节流”吗?

或者在使用 AWS 开发工具包生成预签名 url 时是否有办法告诉它始终以“application/octet-stream”的形式发送?我认为这可能会这样做,但至少在 chrome 中它会尝试在浏览器中播放视频。

var headerOverrides = new ResponseHeaderOverrides { ContentType = "application/octet-stream" };

var urlRequest = new GetPreSignedUrlRequest
{
        BucketName = _bucketName,
        Key = key,
        Expires = DateTime.Now.AddMinutes(120),
        ResponseHeaderOverrides = headerOverrides,
        Protocol = Protocol.HTTPS,
        Verb = HttpVerb.GET
 };

【问题讨论】:

    标签: amazon-s3 fine-uploader


    【解决方案1】:

    Content-Type 标头设置为某个通用值并不是解决问题的正确方法。相反,您需要设置适当的 Content-Disposition 标头。目前,您需要使用 S3 API as part of handling Fine Uploader's upload success call 通过服务器对您的对象进行此调整。有an open case to allow these types of headers to be associated with each object client-side

    【讨论】:

    • 非常好,而不是在上传成功时更改 Content-Disposition 我只是在像这样创建 PreSignedUrlRequest 时对其进行了更改..var headerOverrides = new ResponseHeaderOverrides { ContentType = "application/octet-stream", ContentDisposition = string.Format("application/octet-stream; filename={0}", fileName) };
    • @NoseBagUK 我很确定你想使用“附件”而不是“应用程序/八位字节流”。
    • 当您说“您需要通过服务器对对象进行此调整”时,您的意思是复制对象并补充您想要的标题吗?我需要以某种方式在我的对象上设置Cache-Control。另外,您预计 5.5.0 何时发布?
    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 2021-02-28
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    相关资源
    最近更新 更多