gdrive

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2021 License: Apache-2.0 Imports: 20 Imported by: 1

README

Build Status Integration Tests License

go-service-gdrive

Google Drive service support for go-storage.

Install

go get github.com/beyondstorage/go-service-gdrive

Usage

import (
	"log"

	_ "github.com/beyondstorage/go-service-gdrive"
	"github.com/beyondstorage/go-storage/v4/services"
)

func main() {
	store, err := services.NewStoragerFromString("gdrive://path/to/work_dir?name=<a_meaningful_name>?credential=file:<absolute_path_to_credentials>")
	if err != nil {
		log.Fatal(err)
	}

	// Write data from io.Reader into hello.txt
	n, err := store.Write("hello.txt", r, length)
}

Documentation

Overview

Package gdrive provided support for local file system.

Code generated by go generate via cmd/definitions; DO NOT EDIT.

Index

Constants

View Source
const Type = "gdrive"

Type is the type for gdrive

Variables

This section is empty.

Functions

func NewStorager

func NewStorager(pairs ...types.Pair) (types.Storager, error)

NewStorager will create Storager only.

func WithDefaultStoragePairs

func WithDefaultStoragePairs(v DefaultStoragePairs) Pair

WithDefaultStoragePairs will apply default_storage_pairs value to Options.

DefaultStoragePairs set default pairs for storager actions

func WithStorageFeatures

func WithStorageFeatures(v StorageFeatures) Pair

WithStorageFeatures will apply storage_features value to Options.

StorageFeatures set storage features

Types

type DefaultStoragePairs

type DefaultStoragePairs struct {
	Copy      []Pair
	Create    []Pair
	CreateDir []Pair
	Delete    []Pair
	List      []Pair
	Metadata  []Pair
	Read      []Pair
	Stat      []Pair
	Write     []Pair
}

DefaultStoragePairs is default pairs for specific action

type ObjectSystemMetadata

type ObjectSystemMetadata struct {
}

ObjectSystemMetadata stores system metadata for object.

func GetObjectSystemMetadata

func GetObjectSystemMetadata(o *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 Storage

type Storage struct {
	types.UnimplementedStorager
	types.UnimplementedDirer
	types.UnimplementedCopier
	// contains filtered or unexported fields
}

Storage is the example client.

func (*Storage) Copy

func (s *Storage) Copy(src string, dst string, pairs ...Pair) (err error)

Copy will copy an Object or multiple object in the service.

## Behavior

- Copy only copy one and only one object.

  • Service DON'T NEED to support copy a non-empty directory or copy files recursively.
  • User NEED to implement copy a non-empty directory and copy recursively by themself.
  • Copy a file to a directory SHOULD return `ErrObjectModeInvalid`.

- Copy SHOULD NOT return an error as dst object exists.

  • Service that has native support for `overwrite` doesn't NEED to check the dst object exists or not.
  • Service that doesn't have native support for `overwrite` SHOULD check and delete the dst object if exists.

- A successful copy opration should be complete, which means the dst object's content and metadata should be the same as src object.

This function will create a context by default.

func (*Storage) CopyWithContext

func (s *Storage) CopyWithContext(ctx context.Context, src string, dst string, pairs ...Pair) (err error)

CopyWithContext will copy an Object or multiple object in the service.

## Behavior

- Copy only copy one and only one object.

  • Service DON'T NEED to support copy a non-empty directory or copy files recursively.
  • User NEED to implement copy a non-empty directory and copy recursively by themself.
  • Copy a file to a directory SHOULD return `ErrObjectModeInvalid`.

- Copy SHOULD NOT return an error as dst object exists.

  • Service that has native support for `overwrite` doesn't NEED to check the dst object exists or not.
  • Service that doesn't have native support for `overwrite` SHOULD check and delete the dst object if exists.

- A successful copy opration should be complete, which means the dst object's content and metadata should be the same as src object.

func (*Storage) Create

func (s *Storage) Create(path string, pairs ...Pair) (o *Object)

Create will create a new object without any api call.

## Behavior

- Create SHOULD NOT send any API call. - Create SHOULD accept ObjectMode pair as object mode.

This function will create a context by default.

func (*Storage) CreateDir

func (s *Storage) CreateDir(path string, pairs ...Pair) (o *Object, err error)

CreateDir will create a new dir object.

This function will create a context by default.

func (*Storage) CreateDirWithContext

func (s *Storage) CreateDirWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)

CreateDirWithContext will create a new dir object.

func (*Storage) Delete

func (s *Storage) Delete(path string, pairs ...Pair) (err error)

Delete will delete an object from service.

## Behavior

- Delete only delete one and only one object.

  • Service DON'T NEED to support remove all.
  • User NEED to implement remove_all by themself.

- Delete is idempotent.

  • Successful delete always return nil error.
  • Delete SHOULD never return `ObjectNotExist`
  • Delete DON'T NEED to check the object exist or not.

This function will create a context by default.

func (*Storage) DeleteWithContext

func (s *Storage) DeleteWithContext(ctx context.Context, path string, pairs ...Pair) (err error)

DeleteWithContext will delete an object from service.

## Behavior

- Delete only delete one and only one object.

  • Service DON'T NEED to support remove all.
  • User NEED to implement remove_all by themself.

- Delete is idempotent.

  • Successful delete always return nil error.
  • Delete SHOULD never return `ObjectNotExist`
  • Delete DON'T NEED to check the object exist or not.

func (*Storage) List

func (s *Storage) List(path string, pairs ...Pair) (oi *ObjectIterator, err error)

List will return list a specific path.

## Behavior

- Service SHOULD support default `ListMode`. - Service SHOULD implement `ListModeDir` without the check for `VirtualDir`. - Service DON'T NEED to `Stat` while in `List`.

This function will create a context by default.

func (*Storage) ListWithContext

func (s *Storage) ListWithContext(ctx context.Context, path string, pairs ...Pair) (oi *ObjectIterator, err error)

ListWithContext will return list a specific path.

## Behavior

- Service SHOULD support default `ListMode`. - Service SHOULD implement `ListModeDir` without the check for `VirtualDir`. - Service DON'T NEED to `Stat` while in `List`.

func (*Storage) Metadata

func (s *Storage) Metadata(pairs ...Pair) (meta *StorageMeta)

Metadata will return current storager metadata.

This function will create a context by default.

func (*Storage) Read

func (s *Storage) Read(path string, w io.Writer, pairs ...Pair) (n int64, err error)

Read will read the file's data.

This function will create a context by default.

func (*Storage) ReadWithContext

func (s *Storage) ReadWithContext(ctx context.Context, path string, w io.Writer, pairs ...Pair) (n int64, err error)

ReadWithContext will read the file's data.

func (*Storage) Stat

func (s *Storage) Stat(path string, pairs ...Pair) (o *Object, err error)

Stat will stat a path to get info of an object.

## Behavior

- Stat SHOULD accept ObjectMode pair as hints.

  • Service COULD have different implementations for different object mode.
  • Service SHOULD check if returning ObjectMode is match

This function will create a context by default.

func (*Storage) StatWithContext

func (s *Storage) StatWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)

StatWithContext will stat a path to get info of an object.

## Behavior

- Stat SHOULD accept ObjectMode pair as hints.

  • Service COULD have different implementations for different object mode.
  • Service SHOULD check if returning ObjectMode is match

func (*Storage) String

func (s *Storage) String() string

String implements Storager.String

func (*Storage) Write

func (s *Storage) Write(path string, r io.Reader, size int64, pairs ...Pair) (n int64, err error)

Write will write data into a file.

## Behavior

- Write SHOULD NOT return an error as the object exist.

  • Service that has native support for `overwrite` doesn't NEED to check the object exists or not.
  • Service that doesn't have native support for `overwrite` SHOULD check and delete the object if exists.

- A successful write operation SHOULD be complete, which means the object's content and metadata should be the same as specified in write request.

This function will create a context by default.

func (*Storage) WriteWithContext

func (s *Storage) WriteWithContext(ctx context.Context, path string, r io.Reader, size int64, pairs ...Pair) (n int64, err error)

WriteWithContext will write data into a file.

## Behavior

- Write SHOULD NOT return an error as the object exist.

  • Service that has native support for `overwrite` doesn't NEED to check the object exists or not.
  • Service that doesn't have native support for `overwrite` SHOULD check and delete the object if exists.

- A successful write operation SHOULD be complete, which means the object's content and metadata should be the same as specified in write request.

type StorageFeatures

type StorageFeatures struct {
}

type StorageSystemMetadata

type StorageSystemMetadata struct {
}

StorageSystemMetadata stores system metadata for storage meta.

func GetStorageSystemMetadata

func GetStorageSystemMetadata(s *StorageMeta) StorageSystemMetadata

GetStorageSystemMetadata will get SystemMetadata from StorageMeta.

- The returning StorageSystemMetadata is read only and should not be modified.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL