@filesrocket/amazons3
Version:
Filerocket service to manage files from Amazon S3
112 lines (75 loc) • 3.02 kB
Markdown

[**Filesrocket**](https://filesrocket.com/) is an package of [Node.js](https://nodejs.org/en/) that allows you to manage your files with any cloud storage service ([Local](https://filesrocket.com/services/local.html), [Cloudinary](https://filesrocket.com/services/cloudinary.html), [Amazon S3](https://filesrocket.com/services/amazon-s3.html)) through the use of strategies called [Services](https://filesrocket.com/overview/services.html)
The [Filesrocket Docs](https://filesrocket.com/) are packed with awesome stuff and tell you everything you need to know about using and configuring Filesrocket.
You can start using **Filesrocket** in easy steps.
```bash
$ mkdir filesrocket-example
$ cd filesrocket-example
$ npm init -y && tsc --init
$ npm install express @filesrocket/core @filesrocket/local
$ npm install @types/express typescript ts-node -D
```
Create `src/index.ts` and copy following content.
1. Initialize app
```ts
import express from "express";
const app = express();
app.listen(3030, () => {
console.log("App execute in port:3030");
});
```
2. Register the services you are going to use
```ts
import { Filesrocket } from "@filesrocket/core";
import { LocalService } from "@filesrocket/local";
// Initialize
const filesrocket = new Filesrocket();
// Config your service
const service = new LocalService({
pagination: { default: 15, max: 50 },
host: "http://localhost:3030",
directory: "uploads"
});
// We register the service
filesrocket.register("local", service);
```
3. Register your endpoints.
```ts
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.
```ts
app.use("/uploads", express.static(path.resolve("uploads")));
```
We run the server
```bash
npx ts-node src/index.ts
```
With this simple example you can interact with the files, click on the following link: [`http://localhost:3030/files`](http://localhost:3030/files)
- 🐦 Twitter - [Ivan Zaldivar](https://twitter.com/thebug404)
- 🌐 Website - [filesrocket.com](https://filesrocket.com/)
- 📝 Blog - [thebug.hashnode.dev](https://thebug.hashnode.dev/)
Filesrocket is [MIT Licenced](LICENCE)