mirror of
https://github.com/hyperknot/openfreemap.git
synced 2026-05-21 14:02:15 +00:00
link
This commit is contained in:
@@ -1,40 +1 @@
|
|||||||
# R2 Directory Listing
|
This is based on https://github.com/cmj2002/r2-dir-list
|
||||||
|
|
||||||
This is a simple Directory Listing script for [Cloudflare R2](https://developers.cloudflare.com/r2/) and hosted on [Cloudflare Workers](https://workers.cloudflare.com/). It is inspired by the [Directory Listing of Gitea downloads site](https://blog.gitea.com/evolution-of-the-gitea-downloads-site/).
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Clone this repository, install dependencies and edit the configs:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/cmj2002/r2-dir-list.git
|
|
||||||
cd r2-dir-list
|
|
||||||
npm install
|
|
||||||
mv src/config.ts.example src/config.ts
|
|
||||||
mv wrangler.toml.example wrangler.toml
|
|
||||||
```
|
|
||||||
|
|
||||||
You should edit:
|
|
||||||
- `bucketname` in `src/config.ts` and `wrangler.toml` to your bucket name.
|
|
||||||
- `bucketdomain.example.com` in `src/config.ts` and `wrangler.toml` to your bucket domain. **It must have been set as a [custom domain](https://developers.cloudflare.com/r2/buckets/public-buckets/#custom-domains) of your Cloudflare R2 bucket**.
|
|
||||||
- `example.com` in `wrangler.toml`'s `zone_name` to yours.
|
|
||||||
- Other settings like `name`, `desp`, `showPoweredBy` and `legalInfo` in `src/config.ts` to your own.
|
|
||||||
|
|
||||||
You may want to search `bucketdomain`, `bucketname` and `example.com` in your code to ensure you have edited all of them.
|
|
||||||
|
|
||||||
Then you can run `wrangler deploy` to deploy it to your Cloudflare Workers.
|
|
||||||
|
|
||||||
## Demo
|
|
||||||
|
|
||||||
https://datasets.caomingjun.com/
|
|
||||||
|
|
||||||
This is a production website of mine, which hosts some machine learning datasets used in my papers and codes to share with other reserchers. It is a Cloudflare R2 bucket with this worker in front of it.
|
|
||||||
|
|
||||||
## How it works
|
|
||||||
|
|
||||||
It will only overwrite the response when all of the following conditions are met:
|
|
||||||
- Response from R2 has a status of 404
|
|
||||||
- The requested pathname ends with `/`
|
|
||||||
- There exist "subdirectories" or "files" under the current "directory" (The quotation marks here are used because directories and files are abstract concepts in object storage)
|
|
||||||
|
|
||||||
In such a case, it will generate a HTML page with the list of "subdirectories" and "files" under the current "directory" and return it. Otherwise, it will just return the response from R2. So **putting this worker in front of your R2 bucket will not affect any normal access to your bucket**.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user