Переопределить Content-Type при использовании FineUploader напрямую в корзину S3

Я хочу переопределить Content-Type на «application/octet-stream» при отправке любого файла на s3 с помощью тонкого загрузчика.

Я загружаю видеофайлы, и при их извлечении я никогда не хочу, чтобы они открывались браузером, я всегда хочу, чтобы они были загружены.

Я попытался переопределить его в подписи подписи, но затем загрузка не прошла проверку подписи. Могу ли я получить хороший загрузчик, чтобы сообщить s3, что он должен сохранить его как «приложение / поток октетов»?

Или есть способ при создании предварительно подписанного URL-адреса с помощью AWS SDK указать, что он всегда должен отправляться как «приложение/октет-поток»? Я думал, что это может сделать это, но в 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
 };

person NoseBagUK    schedule 26.01.2015    source источник


Ответы (1)


Установка для заголовка Content-Type некоторого общего значения не является правильным способом решения вашей проблемы. Вместо этого вам нужно установить соответствующий заголовок Content-Disposition. В настоящее время вам необходимо выполнить эту настройку вашего объекта через сервер с помощью S3 API как часть обработки вызова Fine Uploader об успешной загрузке. Существует открытый случай, позволяющий связать эти типы заголовков с каждым объектом на стороне клиента< /а>.

person Ray Nicholus    schedule 26.01.2015
comment
Отлично, вместо того, чтобы менять Content-Disposition при успешной загрузке, я просто изменил его при создании PreSignedUrlRequest, подобного этому..var headerOverrides = new ResponseHeaderOverrides { ContentType = "application/octet-stream", ContentDisposition = string.Format("application/octet-stream; filename={0}", fileName) }; - person NoseBagUK; 27.01.2015
comment
@NoseBagUK Я почти уверен, что вы хотите использовать вложение вместо application/octet-stream. - person Ray Nicholus; 27.01.2015
comment
Когда вы говорите, что вам нужно будет внести эту настройку в свой объект через сервер, вы имеете в виду копирование объекта и добавление нужных заголовков? Мне нужно как-то установить Cache-Control на мои объекты. Кроме того, когда вы ожидаете выпуск 5.5.0? - person Vidya; 08.01.2016