使用 FineUploader 直接到 S3 存储桶时覆盖内容类型
Override the Content-Type when using FineUploader direct to S3 bucket
我想在将任何文件发送到 s3 时将 Content-Type 覆盖为 "application/octet-stream"。
我正在上传视频文件,在检索它们时我不想让浏览器打开它们我总是希望下载。
我尝试在签名签名中覆盖它,但上传未能通过签名测试。我可以让好的上传者告诉 s3 将其保存为 "application/octet-stream" 吗?
或者在使用 AWS SDK 生成预签名 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
};
将 Content-Type
header 设置为某个通用值并不是解决问题的正确方法。相反,您需要设置适当的 Content-Disposition
header。目前,您需要使用 S3 API as part of handling Fine Uploader's upload success call. There is an open case to allow these types of headers to be associated with each object client-side 通过服务器对 object 进行此调整。
我想在将任何文件发送到 s3 时将 Content-Type 覆盖为 "application/octet-stream"。
我正在上传视频文件,在检索它们时我不想让浏览器打开它们我总是希望下载。
我尝试在签名签名中覆盖它,但上传未能通过签名测试。我可以让好的上传者告诉 s3 将其保存为 "application/octet-stream" 吗?
或者在使用 AWS SDK 生成预签名 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
};
将 Content-Type
header 设置为某个通用值并不是解决问题的正确方法。相反,您需要设置适当的 Content-Disposition
header。目前,您需要使用 S3 API as part of handling Fine Uploader's upload success call. There is an open case to allow these types of headers to be associated with each object client-side 通过服务器对 object 进行此调整。