Updated README.md

Signed-off-by: Joe Ma <rikkaneko23@gmail.com>
This commit is contained in:
Joe Ma 2024-02-02 13:35:33 +08:00
parent 76e8d074dc
commit 8aac6f87a9
No known key found for this signature in database
GPG key ID: 7A0ECF5F5EDC587F

View file

@ -32,13 +32,17 @@ It is worth noting that Cloudflare Worker is run *before* the cache. Therefore,
|Name|Description| |Name|Description|
|-|-| |-|-|
|`SERVICE_URL`|The URL of the service| |`SERVICE_URL`|Service URL|
|`PASTE_INDEX_HTML_URL`|The URL of the service frontpage HTML| |`PASTE_INDEX_HTML_URL`|Service frontpage HTML URL|
|`UUID_LENGTH`|The length of the UUID of the paste (Default: 4)| |`UUID_LENGTH`|The length of the UUID of the paste (Default: 4)|
|`PASTE_INDEX`|The Unique ID of Cloudflare KV namespace| |`PASTE_INDEX`|Cloudflare KV namespace ID|
|`AWS_ACCESS_KEY_ID`|The AWS access key| |`AWS_ACCESS_KEY_ID`|AWS access key|
|`AWS_SECRET_ACCESS_KEY`|The AWS secret key| |`AWS_SECRET_ACCESS_KEY`|AWS secret key|
|`ENDPOINT`|The gateway endpoint to the S3 service| |`ENDPOINT`|S3 endpoint|
|`LARGE_AWS_ACCESS_KEY_ID`|AWS access key for `LARGE_ENDPOINT`|
|`LARGE_AWS_SECRET_ACCESS_KEY`|AWS secret key for `LARGE_ENDPOINT`|
|`LARGE_ENDPOINT`|S3 endpoint to upload *large paste*|
|`LARGE_DOWNLOAD_ENDPOINT`|S3/CDN endpoint/ to retrieve *large paste*|
(Compatible to any S3-compatible object storage) (Compatible to any S3-compatible object storage)
**`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `ENDPOINT` should be kept secret, **`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `ENDPOINT` should be kept secret,
@ -52,7 +56,7 @@ i.e., [encrypted store](https://developers.cloudflare.com/workers/platform/envir
Upload a file (Raw body) with password enabled Upload a file (Raw body) with password enabled
```sh ```sh
$ curl --data-binary @example.txt -H "x-pass: exmaple1234" "https://pb.nekoid.cc" $ curl -g -T ${FILE} -H "x-pass: exmaple1234" "https://pb.nekoid.cc"
``` ```
Upload a file (Formdata) with password enabled Upload a file (Formdata) with password enabled
@ -115,11 +119,12 @@ Add `?qr=1` to enable QR code generation for paste link.
|Form Key|Description| |Form Key|Description|
|-|-| |-|-|
|`u`|Upload content| |`u`|Upload content|
|`pass`|Paste's password| |`pass`|Password|
|`read-limit`|The maximum access count| |`read-limit`|The maximum access count|
|`qrcode`|Toggle QR code generation| |`qrcode`|Toggle QR code generation|
|`paste-type`|Set paste type| |`paste-type`|Set paste type|
|`title`|File's title| |`title`|File title|
|`mime-type`|The media type (MIME) of the data and encoding|
|`json`|Use JSON response| |`json`|Use JSON response|
#### For raw request, #### For raw request,
@ -127,8 +132,8 @@ Add `?qr=1` to enable QR code generation for paste link.
|Header Key|Description| |Header Key|Description|
|-|-| |-|-|
|`x-content-type`|The media type (MIME) of the data and encoding| |`x-content-type`|The media type (MIME) of the data and encoding|
|`x-title`|File's title| |`x-title`|File title|
|`x-pass`|Paste's password| |`x-pass`|Password|
|`x-read-limit`|The maximum access count| |`x-read-limit`|The maximum access count|
|`x-paste-type`|Set paste type| |`x-paste-type`|Set paste type|
|`x-qr`|Toggle QR code generation| |`x-qr`|Toggle QR code generation|
@ -140,7 +145,8 @@ The request body contains the upload content.
|Type|Description| |Type|Description|
|-|-| |-|-|
|`paste`|Normal paste content| |`paste`|Normal paste (<25MB)|
|`large_paste`|Large paste(>25MB)|
|`link`|URL link to be redirected| |`link`|URL link to be redirected|
### GET /\<uuid\>/\<option\> ### GET /\<uuid\>/\<option\>
@ -148,6 +154,7 @@ The request body contains the upload content.
Fetch the paste (code) in rendered HTML with syntax highlighting Fetch the paste (code) in rendered HTML with syntax highlighting
Add `?qr=1` to enable QR code generation for paste link. Add `?qr=1` to enable QR code generation for paste link.
Currently, only the following options is supported for `option` Currently, only the following options is supported for `option`
|Option|Meaning| |Option|Meaning|
|-|-| |-|-|
|`settings`|Fetch the paste information| |`settings`|Fetch the paste information|
@ -165,6 +172,31 @@ Delete paste by uuid. *If the password is set, this request requires additional
Update paste setting. *If the password is set, this request requires additional `x-pass` header* Update paste setting. *If the password is set, this request requires additional `x-pass` header*
### POST /v2/large_upload/create
Generate the presigned URL for upload large paste to the given S3 endpoint `LARGE_ENDPOINT` using HTTP `PUT` request.
#### For `multipart/form-data` request,
|Form Key|Description|
|-|-|
|`title`|File title|
|`file-size`|File size|
|`file-sha256-hash`|File hash (SHA256)|
|`mime-type`|The media type (MIME) of the data and encoding|
|`read-limit`|The maximum access count|
|`pass`|Password|
The `file-size` and `file-sha256sum` field is required.
### POST /v2/large_upload/complete/<uuid>
Finialize the paste created from `/v2/large_upload/create`.
### GET /v2/large_upload/<uuid>
Generate the presigned URL for upload large paste to the given S3 endpoint `LARGE_DOWNLOAD_ENDPOINT` using HTTP `GET` request.
## Expiring paste ## Expiring paste
S3 object lifecycle rules and Cloudflare KV's expiring key can be used to implemented expiring paste. S3 object lifecycle rules and Cloudflare KV's expiring key can be used to implemented expiring paste.