https://github.com/imlinhanchao/github-picbed
A picture bed based on GitHub.
https://github.com/imlinhanchao/github-picbed
github pages picture upload
Last synced: about 1 month ago
JSON representation
A picture bed based on GitHub.
- Host: GitHub
- URL: https://github.com/imlinhanchao/github-picbed
- Owner: imlinhanchao
- Created: 2019-11-03T14:59:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-15T02:59:28.000Z (almost 3 years ago)
- Last Synced: 2025-09-20T02:20:05.629Z (7 months ago)
- Topics: github, pages, picture, upload
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/github-picbed
- Size: 19.5 KB
- Stars: 15
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# GitHub Picture Bed
A picture bed based on GitHub. Provide an HTTP file service through Pages. Upload images using the GitHub API.
## Installation
```bash
npm install github-picbed
```
## Usage
```javascript
const github = require('github-picbed')({
token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
repository: 'https://github.com/imlinhanchao/upload-file'
})
const path = require('path');
router.post('/upload', async (req, res, next) => {
let data = req.files[0].buffer;
let extname = path.extname(req.files[0].originalname);
let upload = await github.upload({ data, extname })
res.json(upload);
})
```
## Preparation
1. You need to create an access token in [GitHub](https://github.com/settings/tokens). Select only `repo` for the `select scopes`.
2. Create a repository use to upload files. And then enable GitHub Pages.
## Functions
### Config Upload Options
```javascript
async function config({ token, repository });
```
#### Parameter Object
|key|description|
|--|--|
|token|Your GitHub access token.|
|repository|Your repository use to upload files.|
### Check Initialize State
```javascript
async function isInitialized();
```
#### Return Value
**bool** - true means finish initialize.
### Upload file
```javascript
async function upload({ data, extname, filename });
```
#### Parameter Object
|key|description|
|--|--|
|data|The file path that you want to upload or the buffer of file.|
|extname|The extname of file. You must set this key if the data is buffer.|
|filename|The filename that you want to upload.(Options)|
#### Return Object
|key|description|
|--|--|
|filename|The filename that was eventually uploaded.|
|url|Access URL.|
## Notice
After configuring the GitHub repository address and access token, it takes about 1 second to get the information of GitHub Pages. Therefore, please do not upload immediately after configuration. You can use `isInitialized` to check if initialization has been completed. Or use `await` to wait for the configuration to complete.