После загрузки на s3 не отображает видео?

Ссылка скопирована
1 ответ

формирую подписную ссылку для загрущки файла на s3

async getSignedUrl(     fileName: string,     fileType: string,   ): Promise<Record<string, string>> {     const command = new PutObjectCommand({       Bucket: this.configService.get('disk.ys3.bucket'),       ContentType: fileType,       Key: `video/${fileName}`,     });      const signedURL: string = await getSignedUrl(this.S3Service, command, {       expiresIn: 3600,     });      return {       signedURL,     };   }

async getSignedUrl( fileName: string, fileType: string, ): Promise<Record<string, string>> { const command = new PutObjectCommand({ Bucket: this.configService.get('disk.ys3.bucket'), ContentType: fileType, Key: `video/${fileName}`, }); const signedURL: string = await getSignedUrl(this.S3Service, command, { expiresIn: 3600, }); return { signedURL, }; }

потом на фронте делаю загрузку уже самого видео

const upload = async (files: FileList) => {   if (files.length > 0) {     console.log(files[0]);     var { name, type } = files[0];      try {       const response: any = await getSignedUrl(name, type);        isShowForm.value = true;       video.value = URL.createObjectURL(files[0]);        const formData = new FormData();       formData.append("file", files[0]);        await globalThis.$fetch(response.signedURL, {         method: "PUT",         body: formData,       });     } catch (error) {}   } };

const upload = async (files: FileList) => { if (files.length > 0) { console.log(files[0]); var { name, type } = files[0]; try { const response: any = await getSignedUrl(name, type); isShowForm.value = true; video.value = URL.createObjectURL(files[0]); const formData = new FormData(); formData.append("file", files[0]); await globalThis.$fetch(response.signedURL, { method: "PUT", body: formData, }); } catch (error) {} } };

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

Дополнительно:

Ответы:

То есть отправка работает, но приходит мусор,

А так если попробовать:

await globalThis.$fetch(response.signedURL, {         method: "PUT",         body: formData.get("file"),       });

await globalThis.$fetch(response.signedURL, { method: "PUT", body: formData.get("file"), });

  • ну не сказать что мусор, просто загружается вроде как битым файл, но размеры совпадают
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

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

Во-первых, убедитесь, что у файла видео на Amazon S3 установлены правильные разрешения доступа. Для того чтобы видео было доступно публично, установите разрешения на файл как "public-read".

Во-вторых, убедитесь, что путь к вашему видео файлу на Amazon S3 указан правильно в вашем коде. Проверьте, что ссылка на видео начинается с "https://s3.amazonaws.com/your-bucket-name/your-video-file.mp4".

Наконец, убедитесь, что вы используете правильный HTML-код для вставки видео на вашем сайте. Пример кода для вставки видео в HTML:

<video width="320" height="240" controls>
 
  Your browser does not support the video tag.
</video>

<video width="320" height="240" controls> Your browser does not support the video tag. </video>

Если после всех этих шагов видео все равно не отображается, убедитесь, что файл видео на Amazon S3 не поврежден и имеет правильный формат (например, .mp4). Также проверьте консоль браузера на наличие ошибок при загрузке видео.

Следуя этим рекомендациям, вы сможете успешно отображать видео, загруженные на Amazon S3, на вашем сайте.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно