mirror of
https://github.com/syumai/workers.git
synced 2025-03-10 17:29:11 +00:00
update docs for R2
This commit is contained in:
parent
855f9c2a2a
commit
6424b3db0d
@ -15,6 +15,7 @@
|
||||
- [ ] Put
|
||||
- [ ] Delete
|
||||
- [x] List
|
||||
- [ ] Options for R2 methods
|
||||
|
||||
## Installation
|
||||
|
||||
|
29
r2bucket.go
29
r2bucket.go
@ -23,6 +23,22 @@ type r2Bucket struct {
|
||||
|
||||
var _ R2Bucket = &r2Bucket{}
|
||||
|
||||
// NewR2Bucket returns R2Bucket for given variable name.
|
||||
// * variable name must be defined in wrangler.toml.
|
||||
// - see example: https://github.com/syumai/workers/tree/main/examples/r2-image-server
|
||||
// * if the given variable name doesn't exist on global object, returns error.
|
||||
func NewR2Bucket(varName string) (R2Bucket, error) {
|
||||
inst := js.Global().Get(varName)
|
||||
if inst.IsUndefined() {
|
||||
return nil, fmt.Errorf("%s is undefined", varName)
|
||||
}
|
||||
return &r2Bucket{instance: inst}, nil
|
||||
}
|
||||
|
||||
// Head returns the result of `head` call to R2Bucket.
|
||||
// * Body field of *R2Object is always nil for Head call.
|
||||
// * if the object for given key doesn't exist, returns nil.
|
||||
// * if a network error happens, returns error.
|
||||
func (r *r2Bucket) Head(key string) (*R2Object, error) {
|
||||
p := r.instance.Call("head", key)
|
||||
v, err := awaitPromise(p)
|
||||
@ -35,6 +51,9 @@ func (r *r2Bucket) Head(key string) (*R2Object, error) {
|
||||
return toR2Object(v)
|
||||
}
|
||||
|
||||
// Get returns the result of `get` call to R2Bucket.
|
||||
// * if the object for given key doesn't exist, returns nil.
|
||||
// * if a network error happens, returns error.
|
||||
func (r *r2Bucket) Get(key string) (*R2Object, error) {
|
||||
p := r.instance.Call("get", key)
|
||||
v, err := awaitPromise(p)
|
||||
@ -56,6 +75,8 @@ func (r *r2Bucket) Delete(key string) error {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
// List returns the result of `list` call to R2Bucket.
|
||||
// * if a network error happens, returns error.
|
||||
func (r *r2Bucket) List() (*R2Objects, error) {
|
||||
p := r.instance.Call("list")
|
||||
v, err := awaitPromise(p)
|
||||
@ -64,11 +85,3 @@ func (r *r2Bucket) List() (*R2Objects, error) {
|
||||
}
|
||||
return toR2Objects(v)
|
||||
}
|
||||
|
||||
func NewR2Bucket(varName string) (R2Bucket, error) {
|
||||
inst := js.Global().Get(varName)
|
||||
if inst.IsUndefined() {
|
||||
return nil, fmt.Errorf("%s is undefined", varName)
|
||||
}
|
||||
return &r2Bucket{instance: inst}, nil
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// R2Object represents JavaScript side's R2Object.
|
||||
// R2Object represents Cloudflare R2 object.
|
||||
// * https://github.com/cloudflare/workers-types/blob/3012f263fb1239825e5f0061b267c8650d01b717/index.d.ts#L1094
|
||||
type R2Object struct {
|
||||
instance js.Value
|
||||
@ -68,7 +68,7 @@ func toR2Object(v js.Value) (*R2Object, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
// R2HTTPMetadata represents metadata of R2 Object.
|
||||
// R2HTTPMetadata represents metadata of R2Object.
|
||||
// * https://github.com/cloudflare/workers-types/blob/3012f263fb1239825e5f0061b267c8650d01b717/index.d.ts#L1053
|
||||
type R2HTTPMetadata struct {
|
||||
ContentType *string
|
||||
|
@ -5,7 +5,7 @@ import (
|
||||
"syscall/js"
|
||||
)
|
||||
|
||||
// R2Objects represents JavaScript side's R2Objects.
|
||||
// R2Objects represents Cloudflare R2 objects.
|
||||
// * https://github.com/cloudflare/workers-types/blob/3012f263fb1239825e5f0061b267c8650d01b717/index.d.ts#L1121
|
||||
type R2Objects struct {
|
||||
Objects []*R2Object
|
||||
|
Loading…
x
Reference in New Issue
Block a user