Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 1x 1x 1x 1x 1x 2x 2x 1x 1x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { API } from "aws-amplify"; export const getPresignedUrl = async (fileName: string): Promise<string> => { const response = await API.post("os", "/getUploadUrl", { body: { fileName }, }); Eif (response.url) { return response.url; } throw new Error(response); }; export const uploadToS3 = async (file: File, url: string): Promise<void> => { const response = await fetch(url, { body: file, method: "PUT", }); if (!response.ok) { throw new Error(); } }; export const extractBucketAndKeyFromUrl = ( url: string, ): { bucket: string | null; key: string | null; } => { try { const parsedUrl = new URL(url); const hostnameParts = parsedUrl.hostname.split("."); let bucket: string | null = null; let key: string | null = null; Eif (hostnameParts.length > 3 && hostnameParts[1] === "s3" && hostnameParts[2] === "us-east-1") { bucket = hostnameParts[0]; // The bucket name is the first part of the hostname } // Extract key from the pathname key = parsedUrl.pathname.slice(1); // Remove the leading slash return { bucket, key }; } catch (error) { console.error("Invalid URL format:", error); throw new Error("Invalid URL format:", error); } }; |