формирую подписную ссылку для загрущки файла на 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 в админке. то файл корректно отображается