Documentation
¶
Overview ¶
Copyright The go-storage Authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Package gdrive provided support for local file system.
Code generated by go generate via cmd/definitions; DO NOT EDIT.
Copyright The go-storage Authors ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright The go-storage Authors ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright The go-storage Authors ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- func NewServicer(pairs ...types.Pair) (types.Servicer, error)
- func NewStorager(pairs ...types.Pair) (types.Storager, error)
- type DefaultServicePairsdeprecated
- type DefaultStoragePairsdeprecated
- type Factory
- func (f *Factory) FromMap(m map[string]interface{}) (err error)
- func (f *Factory) FromString(conn string) (err error)
- func (f *Factory) NewServicer() (srv types.Servicer, err error)
- func (f *Factory) NewStorager() (sto types.Storager, err error)
- func (f *Factory) WithPairs(ps ...types.Pair) (err error)
- type ObjectSystemMetadata
- type Service
- func (s *Service) Create(name string, pairs ...types.Pair) (store types.Storager, err error)
- func (s *Service) CreateWithContext(ctx context.Context, name string, pairs ...types.Pair) (store types.Storager, err error)
- func (s *Service) Delete(name string, pairs ...types.Pair) (err error)
- func (s *Service) DeleteWithContext(ctx context.Context, name string, pairs ...types.Pair) (err error)
- func (s *Service) Features() types.ServiceFeatures
- func (s *Service) Get(name string, pairs ...types.Pair) (store types.Storager, err error)
- func (s *Service) GetWithContext(ctx context.Context, name string, pairs ...types.Pair) (store types.Storager, err error)
- func (s *Service) List(pairs ...types.Pair) (sti *types.StoragerIterator, err error)
- func (s *Service) ListWithContext(ctx context.Context, pairs ...types.Pair) (sti *types.StoragerIterator, err error)
- func (s *Service) String() string
- type ServiceFeaturesdeprecated
- type Storage
- func (s *Storage) CombineBlock(o *types.Object, bids []string, pairs ...types.Pair) (err error)
- func (s *Storage) CombineBlockWithContext(ctx context.Context, o *types.Object, bids []string, pairs ...types.Pair) (err error)
- func (s *Storage) CommitAppend(o *types.Object, pairs ...types.Pair) (err error)
- func (s *Storage) CommitAppendWithContext(ctx context.Context, o *types.Object, pairs ...types.Pair) (err error)
- func (s *Storage) CompleteMultipart(o *types.Object, parts []*types.Part, pairs ...types.Pair) (err error)
- func (s *Storage) CompleteMultipartWithContext(ctx context.Context, o *types.Object, parts []*types.Part, pairs ...types.Pair) (err error)
- func (s *Storage) Copy(src string, dst string, pairs ...types.Pair) (err error)
- func (s *Storage) CopyWithContext(ctx context.Context, src string, dst string, pairs ...types.Pair) (err error)
- func (s *Storage) Create(path string, pairs ...types.Pair) (o *types.Object)
- func (s *Storage) CreateAppend(path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateAppendWithContext(ctx context.Context, path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateBlock(path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateBlockWithContext(ctx context.Context, path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateDir(path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateDirWithContext(ctx context.Context, path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateLink(path string, target string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateLinkWithContext(ctx context.Context, path string, target string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateMultipart(path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreateMultipartWithContext(ctx context.Context, path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreatePage(path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) CreatePageWithContext(ctx context.Context, path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) Delete(path string, pairs ...types.Pair) (err error)
- func (s *Storage) DeleteWithContext(ctx context.Context, path string, pairs ...types.Pair) (err error)
- func (s *Storage) Features() types.StorageFeatures
- func (s *Storage) Fetch(path string, url string, pairs ...types.Pair) (err error)
- func (s *Storage) FetchWithContext(ctx context.Context, path string, url string, pairs ...types.Pair) (err error)
- func (s *Storage) List(path string, pairs ...types.Pair) (oi *types.ObjectIterator, err error)
- func (s *Storage) ListBlock(o *types.Object, pairs ...types.Pair) (bi *types.BlockIterator, err error)
- func (s *Storage) ListBlockWithContext(ctx context.Context, o *types.Object, pairs ...types.Pair) (bi *types.BlockIterator, err error)
- func (s *Storage) ListMultipart(o *types.Object, pairs ...types.Pair) (pi *types.PartIterator, err error)
- func (s *Storage) ListMultipartWithContext(ctx context.Context, o *types.Object, pairs ...types.Pair) (pi *types.PartIterator, err error)
- func (s *Storage) ListWithContext(ctx context.Context, path string, pairs ...types.Pair) (oi *types.ObjectIterator, err error)
- func (s *Storage) Metadata(pairs ...types.Pair) (meta *types.StorageMeta)
- func (s *Storage) Move(src string, dst string, pairs ...types.Pair) (err error)
- func (s *Storage) MoveWithContext(ctx context.Context, src string, dst string, pairs ...types.Pair) (err error)
- func (s *Storage) QuerySignHTTPCompleteMultipart(o *types.Object, parts []*types.Part, expire time.Duration, ...) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPCompleteMultipartWithContext(ctx context.Context, o *types.Object, parts []*types.Part, ...) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPCreateMultipart(path string, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPCreateMultipartWithContext(ctx context.Context, path string, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPDelete(path string, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPDeleteWithContext(ctx context.Context, path string, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPListMultipart(o *types.Object, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPListMultipartWithContext(ctx context.Context, o *types.Object, expire time.Duration, ...) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPRead(path string, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPReadWithContext(ctx context.Context, path string, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPWrite(path string, size int64, expire time.Duration, pairs ...types.Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPWriteMultipart(o *types.Object, size int64, index int, expire time.Duration, ...) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPWriteMultipartWithContext(ctx context.Context, o *types.Object, size int64, index int, ...) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPWriteWithContext(ctx context.Context, path string, size int64, expire time.Duration, ...) (req *http.Request, err error)
- func (s *Storage) Read(path string, w io.Writer, pairs ...types.Pair) (n int64, err error)
- func (s *Storage) ReadWithContext(ctx context.Context, path string, w io.Writer, pairs ...types.Pair) (n int64, err error)
- func (s *Storage) Stat(path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) StatWithContext(ctx context.Context, path string, pairs ...types.Pair) (o *types.Object, err error)
- func (s *Storage) String() string
- func (s *Storage) Write(path string, r io.Reader, size int64, pairs ...types.Pair) (n int64, err error)
- func (s *Storage) WriteAppend(o *types.Object, r io.Reader, size int64, pairs ...types.Pair) (n int64, err error)
- func (s *Storage) WriteAppendWithContext(ctx context.Context, o *types.Object, r io.Reader, size int64, ...) (n int64, err error)
- func (s *Storage) WriteBlock(o *types.Object, r io.Reader, size int64, bid string, pairs ...types.Pair) (n int64, err error)
- func (s *Storage) WriteBlockWithContext(ctx context.Context, o *types.Object, r io.Reader, size int64, bid string, ...) (n int64, err error)
- func (s *Storage) WriteMultipart(o *types.Object, r io.Reader, size int64, index int, pairs ...types.Pair) (n int64, part *types.Part, err error)
- func (s *Storage) WriteMultipartWithContext(ctx context.Context, o *types.Object, r io.Reader, size int64, index int, ...) (n int64, part *types.Part, err error)
- func (s *Storage) WritePage(o *types.Object, r io.Reader, size int64, offset int64, pairs ...types.Pair) (n int64, err error)
- func (s *Storage) WritePageWithContext(ctx context.Context, o *types.Object, r io.Reader, size int64, offset int64, ...) (n int64, err error)
- func (s *Storage) WriteWithContext(ctx context.Context, path string, r io.Reader, size int64, pairs ...types.Pair) (n int64, err error)
- type StorageFeaturesdeprecated
- type StorageSystemMetadata
Examples ¶
Constants ¶
const Type = "gdrive"
Type is the type for gdrive
Variables ¶
This section is empty.
Functions ¶
func NewServicer ¶
NewServicer is not usable, only for generate code
func NewStorager ¶
NewStorager will create Storager only.
Example ¶
ExampleNewStorager demonstrates how to initialize a Google Drive backend.
Create a service account in the Google Cloud Console and download the JSON key. Share the target Drive folder with the service account email address.
export GDRIVE_CREDENTIAL=file:/path/to/service-account-key.json export GDRIVE_FOLDER=My Drive Folder
package main
import (
"fmt"
"os"
"github.com/rgglez/go-storage/v5/pairs"
"github.com/rgglez/go-storage/v5/types"
"github.com/rgglez/go-storage/services/gdrive"
)
func main() {
ps := []types.Pair{
// Credential: path to the Google service account JSON key file.
// Format: "file:/absolute/path/to/key.json"
pairs.WithCredential(os.Getenv("GDRIVE_CREDENTIAL")),
pairs.WithName(os.Getenv("GDRIVE_FOLDER")),
}
if wd := os.Getenv("GDRIVE_WORK_DIR"); wd != "" {
ps = append(ps, pairs.WithWorkDir(wd))
}
store, err := gdrive.NewStorager(ps...)
if err != nil {
fmt.Printf("ERROR: %v\n", err)
return
}
fmt.Printf("storager: %s\n", store)
}
Output:
Types ¶
type DefaultServicePairs
deprecated
type DefaultServicePairs = types.DefaultServicePairs
Deprecated: Use types.DefaultServicePairs instead.
type DefaultStoragePairs
deprecated
type DefaultStoragePairs = types.DefaultStoragePairs
Deprecated: Use types.DefaultStoragePairs instead.
type Factory ¶
func (*Factory) FromString ¶
type ObjectSystemMetadata ¶
type ObjectSystemMetadata struct {
}
ObjectSystemMetadata stores system metadata for object.
func GetObjectSystemMetadata ¶
func GetObjectSystemMetadata(o *types.Object) ObjectSystemMetadata
GetObjectSystemMetadata will get ObjectSystemMetadata from Object.
- This function should not be called by service implementer. - The returning ObjectServiceMetadata is read only and should not be modified.
type Service ¶
type Service struct {
types.UnimplementedServicer
// contains filtered or unexported fields
}
Service is the gdrive config. It is not usable, only for generate code
func (*Service) CreateWithContext ¶
func (*Service) DeleteWithContext ¶
func (*Service) Features ¶
func (s *Service) Features() types.ServiceFeatures
func (*Service) GetWithContext ¶
func (*Service) ListWithContext ¶
type ServiceFeatures
deprecated
type ServiceFeatures = types.ServiceFeatures
Deprecated: Use types.ServiceFeatures instead.
type Storage ¶
type Storage struct {
types.UnimplementedStorager
// contains filtered or unexported fields
}
Storage is the example client.
func (*Storage) CombineBlock ¶
func (*Storage) CombineBlockWithContext ¶
func (*Storage) CommitAppend ¶
func (*Storage) CommitAppendWithContext ¶
func (*Storage) CompleteMultipart ¶
func (*Storage) CompleteMultipartWithContext ¶
func (*Storage) CopyWithContext ¶
func (*Storage) CreateAppend ¶
func (*Storage) CreateAppendWithContext ¶
func (*Storage) CreateBlock ¶
func (*Storage) CreateBlockWithContext ¶
func (*Storage) CreateDirWithContext ¶
func (*Storage) CreateLink ¶
func (*Storage) CreateLinkWithContext ¶
func (*Storage) CreateMultipart ¶
func (*Storage) CreateMultipartWithContext ¶
func (*Storage) CreatePage ¶
func (*Storage) CreatePageWithContext ¶
func (*Storage) DeleteWithContext ¶
func (*Storage) Features ¶
func (s *Storage) Features() types.StorageFeatures
func (*Storage) FetchWithContext ¶
func (*Storage) ListBlockWithContext ¶
func (*Storage) ListMultipart ¶
func (*Storage) ListMultipartWithContext ¶
func (*Storage) ListWithContext ¶
func (*Storage) Metadata ¶
func (s *Storage) Metadata(pairs ...types.Pair) (meta *types.StorageMeta)
func (*Storage) MoveWithContext ¶
func (*Storage) QuerySignHTTPCompleteMultipart ¶
func (*Storage) QuerySignHTTPCompleteMultipartWithContext ¶
func (*Storage) QuerySignHTTPCreateMultipart ¶
func (*Storage) QuerySignHTTPCreateMultipartWithContext ¶
func (*Storage) QuerySignHTTPDelete ¶
func (*Storage) QuerySignHTTPDeleteWithContext ¶
func (*Storage) QuerySignHTTPListMultipart ¶
func (*Storage) QuerySignHTTPListMultipartWithContext ¶
func (*Storage) QuerySignHTTPRead ¶
func (*Storage) QuerySignHTTPReadWithContext ¶
func (*Storage) QuerySignHTTPWrite ¶
func (*Storage) QuerySignHTTPWriteMultipart ¶
func (*Storage) QuerySignHTTPWriteMultipartWithContext ¶
func (*Storage) QuerySignHTTPWriteWithContext ¶
func (*Storage) ReadWithContext ¶
func (*Storage) StatWithContext ¶
func (*Storage) Write ¶
func (s *Storage) Write(path string, r io.Reader, size int64, pairs ...types.Pair) (n int64, err error)
Example ¶
ExampleStorage_Write demonstrates the Write → Stat → Read → List → Delete cycle.
package main
import (
"bytes"
"errors"
"fmt"
"strings"
"github.com/rgglez/go-storage/v5/pairs"
"github.com/rgglez/go-storage/v5/types"
"github.com/rgglez/go-storage/services/gdrive"
)
func main() {
store, err := gdrive.NewStorager(
pairs.WithCredential("file:/path/to/service-account-key.json"),
pairs.WithName("My Drive Folder"),
)
if err != nil {
return
}
const path = "go-storage-example/hello.txt"
const content = "Hello from go-storage gdrive example!"
n, err := store.Write(path, strings.NewReader(content), int64(len(content)))
if err != nil {
return
}
fmt.Printf("write %q → %d bytes\n", path, n)
o, err := store.Stat(path)
if err != nil {
return
}
size, _ := o.GetContentLength()
fmt.Printf("stat %q → size=%d\n", path, size)
var buf bytes.Buffer
n, err = store.Read(path, &buf)
if err != nil {
return
}
fmt.Printf("read %q → %d bytes\n", path, n)
it, err := store.List("go-storage-example/")
if err != nil {
return
}
for {
obj, err := it.Next()
if errors.Is(err, types.IterateDone) {
break
}
if err != nil {
return
}
fmt.Printf(" - %s\n", obj.Path)
}
if err := store.Delete(path); err != nil {
return
}
fmt.Printf("delete %q → ok\n", path)
}
Output:
func (*Storage) WriteAppend ¶
func (*Storage) WriteAppendWithContext ¶
func (*Storage) WriteBlock ¶
func (*Storage) WriteBlockWithContext ¶
func (*Storage) WriteMultipart ¶
func (*Storage) WriteMultipartWithContext ¶
func (*Storage) WritePageWithContext ¶
type StorageFeatures
deprecated
type StorageFeatures = types.StorageFeatures
Deprecated: Use types.StorageFeatures instead.
type StorageSystemMetadata ¶
type StorageSystemMetadata struct {
}
StorageSystemMetadata stores system metadata for object.
func GetStorageSystemMetadata ¶
func GetStorageSystemMetadata(s *types.StorageMeta) StorageSystemMetadata
GetStorageSystemMetadata will get StorageSystemMetadata from Storage.
- This function should not be called by service implementer. - The returning StorageServiceMetadata is read only and should not be modified.