Category

Other

Version

1.0.1

Last updated

Sep 6, 2024, 20:47:43 PM6 months ago

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:
npm install medusa-firebase

Configuration

In your Medusa project's configuration file (e.g., Copy to clipboardmedusa-config.js), add the Copy to clipboardmedusa-firebase plugin to the Copy to clipboardplugins array:
module.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 clipboardservice_account_key: The path to your Firebase service account key JSON file. This file is used to authenticate with Firebase.
  • Copy to clipboardbucket_name: The name of your Firebase Storage bucket.
  • Copy to clipboardupload_dir: The dir to upload the file to.

Usage

Once configured, the Copy to clipboardmedusa-firebase plugin allows you to upload and manage files using Firebase Cloud Storage.

Example: Upload a File

import { 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 file
const 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:
git clone https://github.com/teebarg/medusa-firebase.git
cd medusa-firebase
npm install

Building the Plugin

To build the TypeScript files, run:
npm run build

Testing

You can test the plugin by linking it to a Medusa project:
npm link
cd /path/to/your/medusa-project
npm 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.

Build your own plugins

Develop your own plugins with our API to speed up your processes.

Make your plugin available via npm for it to be shared in our Plugin Library with the broader Medusa community.