Unable to upload video using signature.

FluffyBRudy
FluffyBRudy Member Posts: 3

I am unable to upload video using signature but image gets uploaded. When i upload video i get 400 BAD_REQUEST_ERROR.
i tried setting resource_type to auto at server in signature generation but got 401 unauthorized and removing it works for images only.
```

{
error: 'Invalid image file'
}

// client side
export const uploadImage = async (fileOrHtmlString: string | File) => { let file: File; if (typeof fileOrHtmlString === "string") { const blob = new Blob([fileOrHtmlString], { type: "image/svg+xml;charset=utf-8", }); file = new File([blob], Math.random().toString(8) + ".svg", { type: blob.type, }); } else { file = fileOrHtmlString; } const [data, error] = await generatePrefProfileSignature(); if (!data || error) return error; const { signature, timestamp } = data!; console.log(data); const formData = new FormData(); formData.append("file", file); formData.append("api_key", import.meta.env.VITE_CLOUD_API_KEY); formData.append("signature", signature); formData.append("timestamp", timestamp.toString()); formData.append("folder", "pigeon-messanger"); formData.append( "resource_type", file.type.startsWith("video") ? "video" : "image" ); try { const resImg = await axios.post(import.meta.env.VITE_CLOUD_URL, formData); return resImg.data.secure_url; } catch (error) { const err = error as AxiosError; console.error(err); return null; }
// server to generate signature
  public createSignature() {
    const timestamp = Math.round(Date.now() / 1000) + 3600;
    const signature = cloudinary.utils.api_sign_request(
      {
        timestamp: timestamp,
        folder: "pigeon-messanger",
      },
      process.env.CLOUD_API_SECRET!
    );
    return { signature, timestamp };
  }

Answers