Configure Google Cloud Storage
Install required packages and Set up a .env file
1npm:
2npm install express @google-cloud/storage dotenv
3
4.env
5GOOGLE_CLOUD_PROJECT_ID=your_project_id
6GOOGLE_CLOUD_KEYFILE=./path/to/service-account-key.json
7GOOGLE_CLOUD_BUCKET=your_bucket_name
8PORT=3000
9
10// Configure Google Cloud Storage
11const storage = new Storage({
12 projectId: process.env.GOOGLE_CLOUD_PROJECT_ID,
13 keyFilename: process.env.GOOGLE_CLOUD_KEYFILE,
14});
15const bucket = storage.bucket(process.env.GOOGLE_CLOUD_BUCKET);
javascriptAdd Media File
Add (Upload) Media File
1const addMedia = async (filePath, fileName) => {
2 try {
3 const file = bucket.file(fileName);
4 await bucket.upload(filePath, {
5 destination: fileName,
6 metadata: { cacheControl: "public, max-age=31536000" }, // Optional: caching
7 });
8 const [metadata] = await file.getMetadata();
9 const publicUrl = `https://storage.googleapis.com/${bucket.name}/${fileName}`;
10 return { success: true, data: { ...metadata, publicUrl } };
11 } catch (error) {
12 return { success: false, error: error.message };
13 }
14};
javascriptDelete Media File
Delete Media File
1const deleteMedia = async (fileName) => {
2 try {
3 const file = bucket.file(fileName);
4 await file.delete();
5 return { success: true, message: "Media deleted" };
6 } catch (error) {
7 return { success: false, error: error.message };
8 }
9};
javascriptUpdate Media File
Update Media File
1const updateMedia = async (oldFileName, newFileName) => {
2 try {
3 const oldFile = bucket.file(oldFileName);
4 const newFile = bucket.file(newFileName);
5 await oldFile.move(newFile);
6 const [metadata] = await newFile.getMetadata();
7 const publicUrl = `https://storage.googleapis.com/${bucket.name}/${newFileName}`;
8 return { success: true, data: { ...metadata, publicUrl } };
9 } catch (error) {
10 return { success: false, error: error.message };
11 }
12};
javascriptRead Media File Details
Read (Get) Media File Details
1const readMedia = async (fileName) => {
2 try {
3 const file = bucket.file(fileName);
4 const [metadata] = await file.getMetadata();
5 const publicUrl = `https://storage.googleapis.com/${bucket.name}/${fileName}`;
6 return { success: true, data: { ...metadata, publicUrl } };
7 } catch (error) {
8 return { success: false, error: error.message };
9 }
10};
javascript