@Aslero

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

формирую подписную ссылку для загрущки файла на 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,
    };
  }

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

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 в админке. то файл корректно отображается
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
emekhanikov
@emekhanikov
Разработчик и архитектор программного обеспечения
То есть отправка работает, но приходит мусор,

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

await globalThis.$fetch(response.signedURL, {
        method: "PUT",
        body: formData.get("file"),
      });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы