UNPKG

@ejekanshjain/cloud-storage

Version:

All in one package to handle files accross cloud storage services

114 lines (89 loc) 2.78 kB
import { config } from 'dotenv' import { AzureStorageClient } from './azure' import { GCPStorageClient } from './gcp' import { S3Client } from './s3' config() const testData = { filename: 'test.txt', data: 'Hello, World!' } const testS3 = async () => { const s3Client = S3Client({ region: process.env.AWS_REGION!, accessKey: process.env.AWS_ACCESS_KEY!, accessSecret: process.env.AWS_ACCESS_SECRET!, bucket: process.env.AWS_BUCKET!, host: process.env.AWS_HOST }) await s3Client.addFile({ filename: testData.filename, data: testData.data }) await s3Client.getFile(testData.filename) await s3Client.deleteFile(testData.filename) } const testFirebaseStorage = async () => { const firebaseStorageClient = GCPStorageClient({ projectId: process.env.FIREBASE_PROJECT_ID!, privateKey: process.env.FIREBASE_PRIVATE_KEY!, clientEmail: process.env.FIREBASE_CLIENT_EMAIL!, bucket: process.env.FIREBASE_STORAGE_BUCKET!, defaultMediaPublic: true }) await firebaseStorageClient.addFile({ filename: testData.filename, data: testData.data }) await firebaseStorageClient.getFile(testData.filename) await firebaseStorageClient.deleteFile(testData.filename) } const testGCPStorage = async () => { const gcpStorageClient = GCPStorageClient({ projectId: process.env.GCP_PROJECT_ID!, privateKey: process.env.GCP_PRIVATE_KEY!, clientEmail: process.env.GCP_CLIENT_EMAIL!, bucket: process.env.GCP_STORAGE_BUCKET!, defaultMediaPublic: true }) await gcpStorageClient.addFile({ filename: testData.filename, data: testData.data }) await gcpStorageClient.getFile(testData.filename) await gcpStorageClient.deleteFile(testData.filename) } const testAzureStorage = async () => { const azureStorageClient = AzureStorageClient({ connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING!, containerName: process.env.AZURE_STORAGE_CONTAINER_NAME! }) await azureStorageClient.addFile({ filename: testData.filename, data: testData.data }) await azureStorageClient.getFile(testData.filename) await azureStorageClient.deleteFile(testData.filename) } const testR2 = async () => { const r2Client = S3Client({ region: process.env.R2_REGION!, accessKey: process.env.R2_ACCESS_KEY!, accessSecret: process.env.R2_ACCESS_SECRET!, bucket: process.env.R2_BUCKET!, host: process.env.R2_HOST! }) await r2Client.addFile({ filename: testData.filename, data: testData.data }) await r2Client.getFile(testData.filename) await r2Client.deleteFile(testData.filename) } const main = async () => { await testS3() await testFirebaseStorage() await testGCPStorage() await testAzureStorage() await testR2() } main()