0
0
Expressframework~5 mins

Cloud storage integration concept in Express

Choose your learning style9 modes available
Introduction

Cloud storage lets your app save files online instead of on one computer. This helps share files easily and keeps them safe.

You want users to upload photos or documents to your app.
You need to save backups of data without using local disk space.
Your app runs on many servers and needs a shared place for files.
You want to serve files like images or videos fast to users worldwide.
Syntax
Express
const cloudStorage = require('cloud-storage-sdk');

const storageClient = cloudStorage.createClient({
  apiKey: 'your-api-key',
  bucketName: 'your-bucket-name'
});

app.post('/upload', (req, res) => {
  const file = req.file; // from middleware like multer
  storageClient.upload(file.path, file.originalname)
    .then(() => res.send('File uploaded!'))
    .catch(err => res.status(500).send('Upload failed'));
});

Replace 'cloud-storage-sdk' with the actual SDK for your cloud provider (like AWS S3, Google Cloud Storage, Azure Blob Storage).

Use middleware like multer to handle file uploads from users before sending to cloud storage.

Examples
This example uses AWS S3 to upload a file received from the user.
Express
const AWS = require('aws-sdk');
const fs = require('fs');
const s3 = new AWS.S3({ region: 'us-east-1' });

app.post('/upload', (req, res) => {
  const file = req.file;
  const params = {
    Bucket: 'my-bucket',
    Key: file.originalname,
    Body: fs.createReadStream(file.path)
  };
  s3.upload(params, (err, data) => {
    if (err) return res.status(500).send('Upload error');
    res.send('Uploaded to ' + data.Location);
  });
});
This example shows uploading a file to Google Cloud Storage using async/await.
Express
const { Storage } = require('@google-cloud/storage');
const storage = new Storage();
const bucket = storage.bucket('my-bucket');

app.post('/upload', async (req, res) => {
  const file = req.file;
  await bucket.upload(file.path, { destination: file.originalname });
  res.send('File uploaded to Google Cloud Storage');
});
Sample Program

This Express app lets users upload a file via a POST request to '/upload'. It uses multer to handle the file upload, then sends the file to AWS S3 cloud storage. After uploading, it deletes the temporary local file and sends a success message with the file URL.

Express
const express = require('express');
const multer = require('multer');
const AWS = require('aws-sdk');
const fs = require('fs');

const app = express();
const upload = multer({ dest: 'uploads/' });

const s3 = new AWS.S3({ region: 'us-east-1' });

app.post('/upload', upload.single('file'), (req, res) => {
  const file = req.file;
  const params = {
    Bucket: 'my-bucket',
    Key: file.originalname,
    Body: fs.createReadStream(file.path)
  };

  s3.upload(params, (err, data) => {
    fs.unlinkSync(file.path); // remove temp file
    if (err) {
      return res.status(500).send('Upload failed');
    }
    res.send(`File uploaded successfully to ${data.Location}`);
  });
});

app.listen(3000, () => console.log('Server running on port 3000'));
OutputSuccess
Important Notes

Always secure your API keys and never expose them in frontend code.

Clean up temporary files after uploading to avoid filling disk space.

Check your cloud storage permissions to allow uploads from your app.

Summary

Cloud storage helps save and share files online safely.

Use Express with middleware like multer to handle file uploads.

Use cloud provider SDKs to send files from your server to the cloud.