update docs for R2

This commit is contained in:
syumai 2022-05-29 10:13:27 +09:00
parent 855f9c2a2a
commit 6424b3db0d
4 changed files with 25 additions and 11 deletions

View File

@ -15,6 +15,7 @@
- [ ] Put
- [ ] Delete
- [x] List
- [ ] Options for R2 methods
## Installation

View File

@ -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
}

View File

@ -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

View File

@ -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