Hi developers! After months of not posting anything, here I am again, and this time with an open source project that I've been working on for months. Well let's get started.
⚠️ Filesrocket of the moment is in beta, please note that it is not ready for production yet, thanks for your understanding ️️❤️
Table of contents
🤔 What is a Filesrocket?
Filesrocket is an packages of Node.js that allows management your files through strategies that help manage with any cloud services (Local, Cloudinary, AWS).
🌈 Features
- 🔭 Manage your files with multiple cloud storage services (Cloudinary, Amazon S3, Local)
- ✅ Validations (validate extensions, file sizes and more)
- ⚡ Easy to configure and integrate
- 🛡️ Written in Typescript
- 👨🏻💻 Community driven
📝 Prerequisites
- Have Node.js installed.
- Have VSCode (or your favorite Code Editor) installed.
⚙️ Setup
Now we are going to add some configurations for our node.
Creating project.
mkdir filesrocket-app-example
cd filesrocket-app-example
Initialize project.
npm i typescript ts-node -g
npm init -y
tsc --init
Now is necessary installed the following packages.
npm i express filesrocket filesrocket-local
npm i @types/express -D
Perfect, with this we already have everything we need.
🧑💻 Basic Usage
Create a src/index.ts and initialize app
import express from "express";
const app = express();
app.listen(3030, () => {
console.log("App execute in port:3030");
})
Setting service
import { Filesrocket } from "filesrocket";
import { LocalFileService } from "filesrocket-local";
// Initialize
const filesrocket = new Filesrocket();
// Config your service
const service = new LocalFileService({
pagination: { default: 15, max: 50 },
host: "http://localhost:3030",
directory: "uploads",
});
// We register the service
filesrocket.register("local", service);
Register your endpoints
const controller = filesrocket.controller("local");
// Create/Upload files.
app.post("/files", async (req, res) => {
const files = await controller.create(req, {});
res.status(200).json(files);
})
// List files.
app.get("/files", async (req, res) => {
const query = req.query;
const files = await controller.list(query);
res.status(200).json(files);
})
// Remove files.
app.delete("/files", async (req, res) => {
const query = req.query;
const { id } = query;
const files = await controller.remove(id, query)
res.status(200).json(files)
})
Expose static files.
app.use("/uploads", express.static(path.resolve("uploads")));
Execute server
ts-node src/index.ts
With this example you can manage your files locally.
Examples 👀
To make it easier to understand the tool we have created several repositories with the most popular frameworks so that you can clone them on your computer and play with them.
Framework | Repository |
---|---|
Express | filesrocket-express-app |
🔥 Conclusions
As you have just seen, Filesrocket is a tool that allows you not only to upload your files like multer, express-fileupload and others, but it also allows you to consult, delete, provides you with a pre-formed URL and other metadata. This was a short article, if you want to learn more in depth we recommend you visit the official documentation.
Top comments (0)