Medusa Firebase Plugin
A Medusa plugin to enable file uploads and management using Firebase Cloud Storage.
Features
- Upload files directly to Firebase Cloud Storage.
- Retrieve file URLs and presigned URLs for secure access.
- Stream-based file upload support.
- Supports both public and private file storage.
Installation
To install the plugin, use npm or yarn:
1npm install medusa-firebase
Configuration
In your Medusa project's configuration file (e.g., Copy to clipboard
medusa-config.js
), add the Copy to clipboardmedusa-firebase
plugin to the Copy to clipboardplugins
array:1234567891011121314module.exports = {// Other configurations...plugins: [// Other plugins...{resolve: 'medusa-firebase',options: {sservice_account_key: process.env.FIREBASE_CRED,bucket_name: process.env.STORAGE_BUCKET,upload_dir: process.env.UPLOAD_DIR || "uploads",},},],};
Options
- Copy to clipboard
service_account_key
: The path to your Firebase service account key JSON file. This file is used to authenticate with Firebase. - Copy to clipboard
bucket_name
: The name of your Firebase Storage bucket. - Copy to clipboard
upload_dir
: The dir to upload the file to.
Usage
Once configured, the Copy to clipboard
medusa-firebase
plugin allows you to upload and manage files using Firebase Cloud Storage.Example: Upload a File
123456789101112131415import { FileService } from '@medusajs/medusa';const fileService = new FileService();// Example file data (Multer format)const fileData = {path: './path/to/file.jpg',originalname: 'file.jpg',mimetype: 'image/jpeg',};// Upload the fileconst result = await fileService.upload(fileData);console.log('Uploaded file URL:', result.url);
Development
If you want to contribute to this plugin or make local changes, clone the repository and install the dependencies:
123git clone https://github.com/teebarg/medusa-firebase.gitcd medusa-firebasenpm install
Building the Plugin
To build the TypeScript files, run:
1npm run build
Testing
You can test the plugin by linking it to a Medusa project:
123npm linkcd /path/to/your/medusa-projectnpm link medusa-firebase
License
MIT License.
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
Support
If you have any questions or need help, feel free to open an issue in this repository.