https://github.com/kelp404/electron-s3-file-manager
A GUI AWS S3 file manager. It supports keyword search, download, upload and preview video.
https://github.com/kelp404/electron-s3-file-manager
aws-s3 electron nodejs react
Last synced: about 1 year ago
JSON representation
A GUI AWS S3 file manager. It supports keyword search, download, upload and preview video.
- Host: GitHub
- URL: https://github.com/kelp404/electron-s3-file-manager
- Owner: kelp404
- License: mit
- Created: 2022-06-13T07:25:30.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-03-04T13:24:56.000Z (over 1 year ago)
- Last Synced: 2025-04-11T15:27:43.439Z (about 1 year ago)
- Topics: aws-s3, electron, nodejs, react
- Language: JavaScript
- Homepage:
- Size: 771 KB
- Stars: 25
- Watchers: 2
- Forks: 8
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# electron-s3-file-manager
A GUI AWS S3 file manager. It supports keyword search, download, upload and preview video.

## Installation
[Go to release page.](https://github.com/kelp404/electron-s3-file-manager/releases)
## Amazon S3 pricing
https://aws.amazon.com/s3/pricing/
## Create AWS S3 bucket
This project uses Access Key to access your S3 bucket, so enable "Block all public access" is ok.
https://aws.amazon.com/getting-started/hands-on/backup-files-to-amazon-s3/
## Create access key
https://objectivefs.com/howto/how-to-get-amazon-s3-keys
Ths policy example:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::your-bucket",
"arn:aws:s3:::your-bucket/*"
],
"Condition": {
"ForAnyValue:IpAddress": {
"aws:SourceIp": [
"0.0.0.0/0"
]
}
}
}
]
}
```
You can set ip whitelist at "aws:SourceIp".
## Development
### Run in development mode
```bash
git clone https://github.com/kelp404/electron-s3-file-manager.git
cd electron-s3-file-manager
npm install
npm start
```
### Generate dark theme stylesheet
#### 1. Disable dark mode.
Remove `utils.loadStylesheet('dark-theme.css');` at `render-process/index.js`.
#### 2. Add darkreader at `renderer-process/index.js`.
```js
const darkreader = require('darkreader');
darkreader.enable({
brightness: 100,
contrast: 90,
sepia: 10,
});
darkreader.exportGeneratedCSS().then(console.log);
```
### Make database schema migration
#### 1. Update models at `src/main-process/models/data/*.js`
#### 2. Make migration script
```bash
npm run makemigration
```
### Run database schema migration scripts
```bash
npm run runmigration
```