установите CORS для URL-адреса AWS Presign и установите CacheControl для файлов S3?

#javascript #node.js #amazon-s3

Вопрос:

Я новичок в AWS, и у меня есть 2 вопроса:

  1. Я использую URL-адрес Presign для создания URL-адреса для видео, он отлично работает. Но когда я помещаю URL-адрес видео на другой веб-сайт, он отображается нормально. Я хочу, чтобы он работал только в моем домене. Я установил конфигурацию CORS таким образом, но она не поддерживает URL-адрес Presign, она работает только для изображений и других типов.

введите описание изображения здесь

настройки ведра, подобные этому настройки ведра

  1. Я переношу файлы с другого веб-сайта на S3, мне нужно установить мету управления кэшем для каждого файла. У меня есть код, как показано ниже, но он не работает. Есть ли какой-либо способ установить правило, которое применяется ко всем загруженным файлам в S3, оно автоматически обновит метаданные?

    // передача видео в S3 экспорт const transferVideoToS3 = (Видео, имя файла, обратный вызов) => { запрос({ url: видео, кодировка: null }, функция (ошибка, разрешение, тело) { если (ошибка) обратный вызов(ошибка, разрешение);

          s3.upload({
             Bucket: 'myvideos',
             Key: `public/videos/${filename}.mp4`,
             cacheControl: 'max-age=604800',
             ContentType: res.headers['content-type'],
             ContentLength: res.headers['content-length'],
             Body: body // buffer
         }, callback)
     })
     

    }

Спасибо за помощь

Ответ №1:

Я предполагаю, что это может быть достигнуто с помощью следующих настроек

 GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, path)
.withMethod(HttpMethod.PUT).withExpiration(expiration);

generatePresignedUrlRequest.addRequestParameter("cache-control","max-age=604800,public");