@shelby-protocol/s3-gateway 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -0
- package/bin/entry.js +8274 -24
- package/dist/index.d.ts +424 -0
- package/dist/index.js +3138 -0
- package/dist/index.js.map +1 -0
- package/package.json +46 -7
package/README.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Shelby S3 Gateway
|
|
2
|
+
|
|
3
|
+
An S3-compatible API gateway for [Shelby Protocol](https://shelby.xyz) blob storage.
|
|
4
|
+
|
|
5
|
+
Use familiar S3 tools and libraries (AWS SDK, rclone, Cyberduck, DuckDB, etc.) to access blobs stored on Shelby.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
1. Create a `shelby.config.yaml` file:
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
network:
|
|
13
|
+
name: shelbynet
|
|
14
|
+
rpcEndpoint: https://api.shelbynet.shelby.xyz/shelby
|
|
15
|
+
aptosFullnode: https://api.shelbynet.shelby.xyz/v1
|
|
16
|
+
aptosIndexer: https://api.shelbynet.shelby.xyz/v1/graphql
|
|
17
|
+
apiKey: your-api-key
|
|
18
|
+
|
|
19
|
+
server:
|
|
20
|
+
port: 9000
|
|
21
|
+
|
|
22
|
+
credentials:
|
|
23
|
+
- accessKeyId: AKIAIOSFODNN7EXAMPLE
|
|
24
|
+
secretAccessKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
|
25
|
+
|
|
26
|
+
buckets:
|
|
27
|
+
- "0x0694a79e492d268acf0c6c0b01f42654ac050071a343ebc4226cb6717d63e4ea"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
2. Start the gateway:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx @shelby-protocol/s3-gateway --config shelby.config.yaml
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
3. Connect with any S3 client:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Using rclone
|
|
40
|
+
rclone config create shelby s3 \
|
|
41
|
+
provider=Other \
|
|
42
|
+
access_key_id=AKIAIOSFODNN7EXAMPLE \
|
|
43
|
+
secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \
|
|
44
|
+
endpoint=http://localhost:9000 \
|
|
45
|
+
force_path_style=true
|
|
46
|
+
|
|
47
|
+
rclone ls shelby:0x0694a79e492d268acf0c6c0b01f42654ac050071a343ebc4226cb6717d63e4ea
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## CLI Options
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
npx @shelby-protocol/s3-gateway --help
|
|
54
|
+
|
|
55
|
+
Options:
|
|
56
|
+
-c, --config <path> Path to config file
|
|
57
|
+
-p, --port <port> Port to listen on (overrides config)
|
|
58
|
+
-h, --help Show help message
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Supported Operations
|
|
62
|
+
|
|
63
|
+
The gateway currently supports **read operations**:
|
|
64
|
+
|
|
65
|
+
| Operation | Description |
|
|
66
|
+
|-----------|-------------|
|
|
67
|
+
| `ListBuckets` | List all configured buckets |
|
|
68
|
+
| `HeadBucket` | Check if a bucket exists |
|
|
69
|
+
| `ListObjectsV1/V2` | List objects with pagination |
|
|
70
|
+
| `GetObject` | Download file contents (supports Range headers) |
|
|
71
|
+
| `HeadObject` | Get object metadata |
|
|
72
|
+
|
|
73
|
+
## Documentation
|
|
74
|
+
|
|
75
|
+
For full documentation, configuration options, and integration guides, visit:
|
|
76
|
+
https://docs.shelby.xyz/tools/s3-gateway
|
|
77
|
+
|
|
78
|
+
## License
|
|
79
|
+
|
|
80
|
+
Apache-2.0
|