file

package
v3.1.63 Latest Latest
Warning

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

Go to latest
Published: May 1, 2024 License: MIT Imports: 45 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DownloadPartChunkSize = int64(1024 * 1024 * 5)
	DownloadPartLimit     = 15
)
View Source
const (
	RetryAll        = RetryPolicyType("RetryAll")
	RetryUnfinished = RetryPolicyType("RetryUnfinished")
)
View Source
const TempDownloadExtension = "download"

Variables

View Source
var UntrustedSizeRangeRequestSizeExpectedReceived = fmt.Errorf("received size did not match server expected size")
View Source
var UntrustedSizeRangeRequestSizeSentLessThanExpected = fmt.Errorf("server send less than expected")
View Source
var UntrustedSizeRangeRequestSizeSentMoreThanExpected = fmt.Errorf("server send more than expected")
View Source
var UntrustedSizeRangeRequestSizeSentReceived = fmt.Errorf("received size did not match server send size")

Functions

func BeginUpload

func BeginUpload(params files_sdk.FileBeginUploadParams, opts ...files_sdk.RequestResponseOption) (fileUploadPartCollection files_sdk.FileUploadPartCollection, err error)

func Copy

func Copy(params files_sdk.FileCopyParams, opts ...files_sdk.RequestResponseOption) (fileAction files_sdk.FileAction, err error)

func Create

func Create(params files_sdk.FileCreateParams, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func Delete

func Delete(params files_sdk.FileDeleteParams, opts ...files_sdk.RequestResponseOption) (err error)

func Find

func Get

func Move

func Move(params files_sdk.FileMoveParams, opts ...files_sdk.RequestResponseOption) (fileAction files_sdk.FileAction, err error)

func OnBytesChange

func OnBytesChange(event status.GetStatus) status.GetStatus

func RetryByPolicy

func RetryByPolicy(ctx context.Context, job *Job, policy RetryPolicy, signalEvents bool)

func RetryByStatus

func RetryByStatus(ctx context.Context, job *Job, signalEvents bool, policy RetryPolicy, s ...status.GetStatus)

func SetJobParams

func SetJobParams(r *Job, d direction.Direction, params interface{}, logger retryablehttp.Logger, remoteFs fs.FS)

func Update

func Update(params files_sdk.FileUpdateParams, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func UpdateWithMap

func UpdateWithMap(params map[string]interface{}, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func WaitTellFinished

func WaitTellFinished[T any](job *Job, onStatusComplete chan T, beforeCallingFinish func())

Types

type ByteOffset

type ByteOffset struct {
	PartSizes []int64
}

func (ByteOffset) BySize

func (b ByteOffset) BySize(size *int64) Iterator

func (ByteOffset) Resume

func (b ByteOffset) Resume(size *int64, off int64, index int) Iterator

func (ByteOffset) WithDefaultChunkSize

func (b ByteOffset) WithDefaultChunkSize(size *int64, off int64, index int, defaultChunkSize int64) Iterator

type Client

type Client struct {
	files_sdk.Config
}

func (*Client) BeginUpload

func (c *Client) BeginUpload(params files_sdk.FileBeginUploadParams, opts ...files_sdk.RequestResponseOption) (fileUploadPartCollection files_sdk.FileUploadPartCollection, err error)

func (*Client) Copy

func (c *Client) Copy(params files_sdk.FileCopyParams, opts ...files_sdk.RequestResponseOption) (fileAction files_sdk.FileAction, err error)

func (*Client) Create

func (c *Client) Create(params files_sdk.FileCreateParams, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func (*Client) Delete

func (c *Client) Delete(params files_sdk.FileDeleteParams, opts ...files_sdk.RequestResponseOption) (err error)

func (*Client) Download

func (*Client) DownloadRequestStatus

func (c *Client) DownloadRequestStatus(fileDownloadUrl string, downloadRequestId string, opts ...files_sdk.RequestResponseOption) (files_sdk.ResponseError, error)

func (*Client) DownloadRetry

func (c *Client) DownloadRetry(job Job, opts ...files_sdk.RequestResponseOption) *Job

func (*Client) DownloadToFile

func (c *Client) DownloadToFile(params files_sdk.FileDownloadParams, filePath string, opts ...files_sdk.RequestResponseOption) (files_sdk.File, error)

func (*Client) DownloadUri

func (*Client) Downloader

func (c *Client) Downloader(params DownloaderParams, opts ...files_sdk.RequestResponseOption) *Job

func (*Client) FileStats

func (c *Client) FileStats(file files_sdk.File, opts ...files_sdk.RequestResponseOption) (files_sdk.File, error)

File{}.Size and File{}.Mtime are not always up to date. This calls HEAD on File{}.DownloadUri to get the latest info. Some Download URLs won't support HEAD. In this case the size is reported as UntrustedSizeValue. The size can be known post download using Client{}.DownloadRequestStatus. This applies to the remote mount types FTP, SFTP, and WebDAV.

func (*Client) Find

func (c *Client) Find(params files_sdk.FileFindParams, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func (*Client) Get

func (c *Client) Get(Path string, opts ...files_sdk.RequestResponseOption) (files_sdk.File, error)

func (*Client) ListFor

func (*Client) Move

func (c *Client) Move(params files_sdk.FileMoveParams, opts ...files_sdk.RequestResponseOption) (fileAction files_sdk.FileAction, err error)

func (*Client) Update

func (c *Client) Update(params files_sdk.FileUpdateParams, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func (*Client) UpdateWithMap

func (c *Client) UpdateWithMap(params map[string]interface{}, opts ...files_sdk.RequestResponseOption) (file files_sdk.File, err error)

func (*Client) Upload

func (c *Client) Upload(opts ...UploadOption) error

func (*Client) UploadFile

func (c *Client) UploadFile(sourcePath string, destinationPath string, opts ...UploadOption) error

UploadFile Deprecated use c.Upload(UploadWithFile(sourcePath), UploadWithDestinationPath(destinationPath))

func (*Client) UploadRetry

func (c *Client) UploadRetry(job Job, opts ...files_sdk.RequestResponseOption) *Job

func (*Client) UploadWithResume

func (c *Client) UploadWithResume(opts ...UploadOption) (UploadResumable, error)

func (*Client) Uploader

func (c *Client) Uploader(params UploaderParams, opts ...files_sdk.RequestResponseOption) *Job

type CustomResponse

type CustomResponse struct {
	Status      int
	Body        []byte
	ContentType string
}

type CustomTransport

type CustomTransport struct {
	http.Transport
	*url.URL
}

func (*CustomTransport) RoundTrip

func (t *CustomTransport) RoundTrip(req *http.Request) (*http.Response, error)

type DeleteSource

type DeleteSource struct {
	direction.Direction
	Config files_sdk.Config
}

DeleteSource files after a sync

job.RegisterFileEvent(func(file status.File) {
		log, err := file.DeleteSource{Direction: f.Direction, Config: config}.Call(ctx, f)
}, status.Complete, status.Skipped)

func (DeleteSource) Call

type DirEntryError

type DirEntryError struct {
	DirEntries []goFs.DirEntry
	// contains filtered or unexported fields
}

type DownloadParts

type DownloadParts struct {
	context.CancelFunc
	context.Context

	fs.File
	fs.FileInfo
	lib.WriterAndAt

	CloseError error
	files_sdk.Config

	*sync.RWMutex
	// contains filtered or unexported fields
}

func (*DownloadParts) FinalSize

func (d *DownloadParts) FinalSize() int64

func (*DownloadParts) Init

func (d *DownloadParts) Init(file fs.File, info fs.FileInfo, globalWait manager.ConcurrencyManager, writer lib.WriterAndAt, config files_sdk.Config) *DownloadParts

func (*DownloadParts) Run

func (d *DownloadParts) Run(ctx context.Context) error

type DownloadStatus

type DownloadStatus struct {
	fs.FS
	fs.FileInfo

	DownloadedBytes int64

	Sync bool

	Mutex         *sync.RWMutex
	PreserveTimes bool

	status.Changes
	// contains filtered or unexported fields
}

func (*DownloadStatus) EndedAt

func (d *DownloadStatus) EndedAt() time.Time

func (*DownloadStatus) Err

func (d *DownloadStatus) Err() error

func (*DownloadStatus) File

func (d *DownloadStatus) File() files_sdk.File

func (*DownloadStatus) Id

func (d *DownloadStatus) Id() string

func (*DownloadStatus) IncrementTransferBytes

func (d *DownloadStatus) IncrementTransferBytes(b int64)

func (*DownloadStatus) Job

func (d *DownloadStatus) Job() *Job

func (*DownloadStatus) LocalPath

func (d *DownloadStatus) LocalPath() string

func (*DownloadStatus) RecentError

func (d *DownloadStatus) RecentError() error

func (*DownloadStatus) RemotePath

func (d *DownloadStatus) RemotePath() string

func (*DownloadStatus) SetFinalSize

func (d *DownloadStatus) SetFinalSize(written int64)

func (*DownloadStatus) SetStatus

func (d *DownloadStatus) SetStatus(s status.Status, err error)

func (*DownloadStatus) Size

func (d *DownloadStatus) Size() (size int64)

func (*DownloadStatus) StartedAt

func (d *DownloadStatus) StartedAt() time.Time

func (*DownloadStatus) Status

func (d *DownloadStatus) Status() status.Status

func (*DownloadStatus) StatusChanges

func (d *DownloadStatus) StatusChanges() status.Changes

func (*DownloadStatus) TransferBytes

func (d *DownloadStatus) TransferBytes() int64

type DownloadUri

type DownloadUri string

func (DownloadUri) ToTime

func (d DownloadUri) ToTime() (t time.Time, err error)

func (DownloadUri) ToUrl

func (d DownloadUri) ToUrl() (u *url.URL, err error)

func (DownloadUri) Valid

func (d DownloadUri) Valid(within time.Duration) (s DownloadUriValid, valid bool, err error)

type DownloadUriValid

type DownloadUriValid struct {
	*url.URL
	time.Time
	Remaining time.Duration
}

type DownloaderParams

type DownloaderParams struct {
	RemotePath    string
	RemoteFile    files_sdk.File
	LocalPath     string
	Sync          bool
	PreserveTimes bool
	RetryPolicy
	*manager.Manager
	EventsReporter

	DryRun bool
	// contains filtered or unexported fields
}

type Entity

type Entity struct {
	fs.File
	fs.FS
	// contains filtered or unexported fields
}

type EventsReporter

type EventsReporter map[status.Status][]reporterSettings

func CreateFileEvents

func CreateFileEvents(callback Reporter, events ...status.GetStatus) EventsReporter

type FS

type FS struct {
	files_sdk.Config
	context.Context
	Root string
	// contains filtered or unexported fields
}

func (*FS) Chtimes added in v3.1.50

func (f *FS) Chtimes(name string, _atime time.Time, mtime time.Time) error

func (*FS) ClearCache

func (f *FS) ClearCache()

func (*FS) Create

func (f *FS) Create(path string) (io.WriteCloser, error)

Create Not for performant use cases.

func (*FS) Init

func (f *FS) Init(config files_sdk.Config, cache bool) *FS

func (*FS) MkdirAll

func (f *FS) MkdirAll(dir string, _ goFs.FileMode) error

func (*FS) MkdirTemp

func (f *FS) MkdirTemp(dir, pattern string) (string, error)

func (*FS) Open

func (f *FS) Open(name string) (goFs.File, error)

func (*FS) PathJoin

func (f *FS) PathJoin(s ...string) string

func (*FS) PathSeparator

func (f *FS) PathSeparator() string

func (*FS) ReadDir

func (f *FS) ReadDir(name string) ([]goFs.DirEntry, error)

func (*FS) RelPath

func (f *FS) RelPath(parent, child string) (string, error)

func (*FS) Remove

func (f *FS) Remove(path string) error

func (*FS) RemoveAll

func (f *FS) RemoveAll(path string) error

func (*FS) SplitPath

func (f *FS) SplitPath(path string) (string, string)

func (*FS) TempDir

func (f *FS) TempDir() string

func (*FS) WithContext

func (f *FS) WithContext(ctx context.Context) interface{}

type File

type File struct {
	*files_sdk.File
	*FS
	io.ReadCloser

	MaxConnections int

	SizeTrust
	// contains filtered or unexported fields
}

func (*File) Close

func (f *File) Close() error

func (*File) Info

func (f *File) Info() (goFs.FileInfo, error)

func (*File) Init

func (f *File) Init() *File

func (*File) IsDir

func (f *File) IsDir() bool

func (*File) Name

func (f *File) Name() string

func (*File) Read

func (f *File) Read(b []byte) (n int, err error)

func (*File) ReadAt

func (f *File) ReadAt(p []byte, off int64) (n int, err error)

func (*File) ReaderRange

func (f *File) ReaderRange(off int64, end int64) (r io.ReadCloser, err error)

func (*File) Stat

func (f *File) Stat() (goFs.FileInfo, error)

func (*File) Type

func (f *File) Type() goFs.FileMode

func (*File) WithContext

func (f *File) WithContext(ctx context.Context) goFs.File

type IFile

type IFile interface {
	SetStatus(status.Status, error)
	StatusChanges() status.Changes
	TransferBytes() int64
	IncrementTransferBytes(int64)
	File() filesSDK.File
	Size() int64
	Id() string
	LocalPath() string
	RemotePath() string
	Status() status.Status
	EndedAt() time.Time
	StartedAt() time.Time
	Err() error
	Job() *Job
}

type Info

type Info struct {
	files_sdk.File
	// contains filtered or unexported fields
}

func (Info) IsDir

func (i Info) IsDir() bool

func (Info) Mode

func (i Info) Mode() goFs.FileMode

func (Info) Name

func (i Info) Name() string

func (Info) PossibleSize

func (i Info) PossibleSize() int64

func (Info) RemoteMount

func (i Info) RemoteMount() bool

func (Info) Size

func (i Info) Size() int64

func (Info) SizeTrust

func (i Info) SizeTrust() SizeTrust

func (Info) Sys

func (i Info) Sys() interface{}

func (Info) UntrustedSize

func (i Info) UntrustedSize() bool

type Iter

type Iter struct {
	*folder.Iter
}

func (Iter) Iterate

func (i Iter) Iterate(identifier interface{}, opts ...files_sdk.RequestResponseOption) (files_sdk.IterI, error)

func (Iter) LoadResource

func (i Iter) LoadResource(identifier interface{}, opts ...files_sdk.RequestResponseOption) (interface{}, error)

type Iterator

type Iterator func() (OffSet, Iterator, int)

type Job

type Job struct {
	Id string
	*timer.Timer
	Statuses  []IFile
	Direction direction.Direction

	LocalPath  string
	RemotePath string
	Sync       bool
	CodeStart  func()
	context.CancelFunc

	Params interface{}
	Client interface{}
	Config filesSDK.Config
	EventsReporter
	directory.Type
	*manager.Manager
	RetryPolicy interface{}
	Ignore      *ignore.GitIgnore
	Include     *ignore.GitIgnore
	Started     *lib.Signal
	Finished    *lib.Signal
	Canceled    *lib.Signal
	Scanning    *lib.Signal
	EndScanning *lib.Signal
	retryablehttp.Logger
	RemoteFs fs.FS
	*lib.Meter
	// contains filtered or unexported fields
}

func (*Job) Add

func (r *Job) Add(report IFile)

func (*Job) All

func (r *Job) All(t ...status.GetStatus) bool

func (*Job) Any

func (r *Job) Any(t ...status.GetStatus) (b bool)

func (*Job) Cancel

func (r *Job) Cancel()

func (*Job) ClearCalled

func (r *Job) ClearCalled()

func (*Job) ClearStatuses

func (r *Job) ClearStatuses() Job

func (*Job) Count

func (r *Job) Count(t ...status.GetStatus) int

func (*Job) CountFunc

func (r *Job) CountFunc(call func(IFile) bool, t ...status.GetStatus) int

func (*Job) ETA

func (r *Job) ETA() time.Duration

func (*Job) ElapsedTime

func (r *Job) ElapsedTime() time.Duration

func (*Job) EndScan

func (r *Job) EndScan()

func (*Job) EnqueueNext

func (r *Job) EnqueueNext() (f IFile, ok bool)

func (*Job) Files

func (r *Job) Files() []filesSDK.File

func (*Job) FilesRate

func (r *Job) FilesRate() float64

func (*Job) FinalTransferRate

func (r *Job) FinalTransferRate() int64

func (*Job) Find

func (r *Job) Find(t status.GetStatus) (IFile, bool)

func (*Job) FindRemoteFile

func (r *Job) FindRemoteFile(file IFile) (filesSDK.File, bool, error)

func (*Job) Finish

func (r *Job) Finish()

func (*Job) Idle

func (r *Job) Idle() bool

func (*Job) Init

func (r *Job) Init() *Job

func (*Job) Job

func (r *Job) Job() *Job

func (*Job) Percentage

func (r *Job) Percentage(t ...status.GetStatus) int

func (*Job) RegisterFileEvent

func (r *Job) RegisterFileEvent(callback Reporter, events ...status.GetStatus)

func (*Job) RemainingBytes

func (r *Job) RemainingBytes(t ...status.GetStatus) int64

func (*Job) Reset

func (r *Job) Reset()

func (*Job) Scan

func (r *Job) Scan()

func (*Job) SetEventsReporter

func (r *Job) SetEventsReporter(e EventsReporter)

func (*Job) SetManager

func (r *Job) SetManager(m *manager.Manager)

func (*Job) Start

func (r *Job) Start(ignoreCodeStart ...bool)

func (*Job) StatusFromError

func (r *Job) StatusFromError(s IFile, err error)

func (*Job) Sub

func (r *Job) Sub(t ...status.GetStatus) *Job

func (*Job) TotalBytes

func (r *Job) TotalBytes(t ...status.GetStatus) int64

func (*Job) TransferBytes

func (r *Job) TransferBytes(t ...status.GetStatus) int64

func (*Job) TransferRate

func (r *Job) TransferRate() int64

func (*Job) UpdateStatus

func (r *Job) UpdateStatus(s status.GetStatus, file IFile, err error)

func (*Job) UpdateStatusWithBytes

func (r *Job) UpdateStatusWithBytes(status status.GetStatus, file IFile, bytesCount int64)

func (*Job) Wait

func (r *Job) Wait()

func (*Job) WithContext

func (r *Job) WithContext(ctx context.Context) context.Context

type JobFile

type JobFile struct {
	StatusName    string        `json:"status"`
	TransferBytes int64         `json:"transferred_bytes"`
	Size          int64         `json:"size_bytes"`
	LocalPath     string        `json:"local_path"`
	RemotePath    string        `json:"remote_path"`
	EndedAt       time.Time     `json:"completed_at"`
	StartedAt     time.Time     `json:"started_at"`
	Err           error         `json:"error"`
	Id            string        `json:"-"`
	Attempts      int           `json:"attempts"`
	Mutex         *sync.RWMutex `json:"-"`
	status.Status `json:"-"`
	filesSDK.File `json:"-"`
	*Job          `json:"-"`
}

func ToStatusFile

func ToStatusFile(f IFile) JobFile

type Len

type Len interface {
	Len() int
}

type MashableError

type MashableError struct {
	// contains filtered or unexported fields
}

func (MashableError) Err

func (m MashableError) Err() error

func (MashableError) MarshalJSON

func (m MashableError) MarshalJSON() ([]byte, error)

type MockAPIServer

type MockAPIServer struct {
	Addr string
	*httptest.Server

	MockFiles map[string]mockFile

	*testing.T
	TrackRequest map[string][]string
	// contains filtered or unexported fields
}

func (*MockAPIServer) Client

func (f *MockAPIServer) Client() *Client

func (*MockAPIServer) Do

func (f *MockAPIServer) Do() *MockAPIServer

func (*MockAPIServer) GetFile

func (f *MockAPIServer) GetFile(file mockFile) (r io.Reader, contentLengthOk bool, contentLength int64, realSize int64, err error)

func (*MockAPIServer) GetRouter

func (f *MockAPIServer) GetRouter() *gin.Engine

func (*MockAPIServer) MockRoute

func (f *MockAPIServer) MockRoute(path string, call func(ctx *gin.Context, model interface{}) bool)

func (*MockAPIServer) Routes

func (f *MockAPIServer) Routes()

func (*MockAPIServer) Shutdown

func (f *MockAPIServer) Shutdown()

type MoveSource

type MoveSource struct {
	direction.Direction
	Path   string
	Config files_sdk.Config
}

MoveSource files after a sync

job.RegisterFileEvent(func(file status.File) {
		log, err := file.MoveSource{Direction: f.Direction, Config: config}.Call(ctx, f)
}, status.Complete, status.Skipped)

func (MoveSource) Call

type OffSet

type OffSet struct {
	// contains filtered or unexported fields
}

type Part

type Part struct {
	OffSet
	files_sdk.EtagsParam

	context.Context
	context.CancelFunc
	*sync.RWMutex

	files_sdk.FileUploadPart
	ProxyReader
	// contains filtered or unexported fields
}

func (*Part) Clear

func (p *Part) Clear()

func (*Part) Done

func (p *Part) Done() *Part

func (*Part) Err

func (p *Part) Err() error

func (*Part) SetError

func (p *Part) SetError(err error)

func (*Part) Start

func (p *Part) Start(ctx ...context.Context) *Part

func (*Part) Successful

func (p *Part) Successful() bool

func (*Part) Touch

func (p *Part) Touch()

func (*Part) WithContext

func (p *Part) WithContext(ctx context.Context) *Part

type PartRunnerReturn

type PartRunnerReturn int

type Parts

type Parts []*Part

func (Parts) SuccessfulBytes

func (p Parts) SuccessfulBytes() (b int64)

type PossibleSize

type PossibleSize interface {
	PossibleSize() int64
}

type Progress

type Progress func(int64)

type ProxyRead

type ProxyRead struct {
	io.Reader
	// contains filtered or unexported fields
}

func (*ProxyRead) BytesRead

func (x *ProxyRead) BytesRead() int

func (*ProxyRead) Close

func (x *ProxyRead) Close() error

func (*ProxyRead) Len

func (x *ProxyRead) Len() int

func (*ProxyRead) Read

func (x *ProxyRead) Read(p []byte) (int, error)

func (*ProxyRead) Rewind

func (x *ProxyRead) Rewind() bool

type ProxyReader

type ProxyReader interface {
	io.ReadCloser
	Len() int
	BytesRead() int
	Rewind() bool
}

type ProxyReaderAt

type ProxyReaderAt struct {
	io.ReaderAt
	// contains filtered or unexported fields
}

func (*ProxyReaderAt) BytesRead

func (x *ProxyReaderAt) BytesRead() int

func (*ProxyReaderAt) Close

func (x *ProxyReaderAt) Close() error

func (*ProxyReaderAt) Len

func (x *ProxyReaderAt) Len() int

func (*ProxyReaderAt) Read

func (x *ProxyReaderAt) Read(p []byte) (int, error)

func (*ProxyReaderAt) Rewind

func (x *ProxyReaderAt) Rewind() bool

func (*ProxyReaderAt) Seek

func (x *ProxyReaderAt) Seek(offset int64, whence int) (int64, error)

type ReadAtLeastWrapper

type ReadAtLeastWrapper struct {
	io.ReadCloser
	io.Reader
}

func (ReadAtLeastWrapper) Close

func (r ReadAtLeastWrapper) Close() error

func (ReadAtLeastWrapper) Read

func (f ReadAtLeastWrapper) Read(b []byte) (n int, err error)

type ReadDirFile

type ReadDirFile struct {
	*File
	// contains filtered or unexported fields
}

func (ReadDirFile) ReadDir

func (f ReadDirFile) ReadDir(n int) ([]goFs.DirEntry, error)

type ReadWrapper

type ReadWrapper struct {
	io.ReadCloser
	// contains filtered or unexported fields
}

func (*ReadWrapper) Read

func (r *ReadWrapper) Read(p []byte) (n int, err error)

type ReaderCloserDownloadStatus

type ReaderCloserDownloadStatus struct {
	*ReadWrapper

	UntrustedSizeRangeRequestSize
	// contains filtered or unexported fields
}

func (ReaderCloserDownloadStatus) Close

type ReaderRange

type ReaderRange interface {
	ReaderRange(off int64, end int64) (io.ReadCloser, error)
	goFs.File
}

type RecursiveItem

type RecursiveItem struct {
	files_sdk.File
	// contains filtered or unexported fields
}

func (RecursiveItem) Err

func (r RecursiveItem) Err() error

type Reporter

type Reporter func(JobFile)

type RetryPolicy

type RetryPolicy struct {
	Type       RetryPolicyType
	RetryCount int
	Backoff    int
}

func (RetryPolicy) WaitSec

func (p RetryPolicy) WaitSec(retry int) time.Duration

type RetryPolicyType

type RetryPolicyType string

type SizeTrust

type SizeTrust int
const (
	NullSizeTrust SizeTrust = iota
	UntrustedSizeValue
	TrustedSizeValue
)

type Subscriptions

type Subscriptions struct {
	Started     chan time.Time
	Finished    chan time.Time
	Canceled    chan time.Time
	Scanning    chan time.Time
	EndScanning chan time.Time
}

type TestLogger

type TestLogger struct {
	*testing.T
}

func (TestLogger) Printf

func (t TestLogger) Printf(format string, args ...any)

func (TestLogger) Write

func (t TestLogger) Write(p []byte) (n int, err error)

type UntrustedSize

type UntrustedSize interface {
	UntrustedSize() bool
	SizeTrust() SizeTrust
	goFs.FileInfo
}

type UntrustedSizeRangeRequestSize

type UntrustedSizeRangeRequestSize struct {
	ExpectedSize int64
	SentSize     int64
	ReceivedSize int64
	Status       string
}

func (UntrustedSizeRangeRequestSize) Log

func (u UntrustedSizeRangeRequestSize) Log() map[string]interface{}

func (UntrustedSizeRangeRequestSize) Mismatch

func (u UntrustedSizeRangeRequestSize) Mismatch() error

func (UntrustedSizeRangeRequestSize) VerifyReceived

func (u UntrustedSizeRangeRequestSize) VerifyReceived() error

type UnwrappedError

type UnwrappedError struct {
	OriginalError error
	// contains filtered or unexported fields
}

type UploadOption

type UploadOption func(uploadIO) (uploadIO, error)

func UploadRewindAllProgressOnFailure

func UploadRewindAllProgressOnFailure() UploadOption

UploadRewindAllProgressOnFailure on upload failure rewind all successfully parts

func UploadWithContext

func UploadWithContext(ctx context.Context) UploadOption

func UploadWithDestinationPath

func UploadWithDestinationPath(destinationPath string) UploadOption

func UploadWithFile

func UploadWithFile(sourcePath string) UploadOption

func UploadWithProgress

func UploadWithProgress(progress Progress) UploadOption

func UploadWithProvidedMtime

func UploadWithProvidedMtime(providedMtime time.Time) UploadOption

func UploadWithReader

func UploadWithReader(reader io.Reader) UploadOption

func UploadWithReaderAt

func UploadWithReaderAt(readerAt io.ReaderAt) UploadOption

func UploadWithResume

func UploadWithResume(resume UploadResumable) UploadOption

func UploadWithSize

func UploadWithSize(size int64) UploadOption

type UploadResumable

type UploadResumable struct {
	files_sdk.FileUploadPart
	Parts
	files_sdk.File
}

type UploadStatus

type UploadStatus struct {
	Sync bool
	Uploader
	UploadResumable
	Mutex *sync.RWMutex

	status.Changes
	// contains filtered or unexported fields
}

func (*UploadStatus) EndedAt

func (u *UploadStatus) EndedAt() time.Time

func (*UploadStatus) Err

func (u *UploadStatus) Err() error

func (*UploadStatus) File

func (u *UploadStatus) File() files_sdk.File

func (*UploadStatus) Id

func (u *UploadStatus) Id() string

func (*UploadStatus) IncrementTransferBytes

func (u *UploadStatus) IncrementTransferBytes(b int64)

func (*UploadStatus) Job

func (u *UploadStatus) Job() *Job

func (*UploadStatus) LocalPath

func (u *UploadStatus) LocalPath() string

func (*UploadStatus) RecentError

func (u *UploadStatus) RecentError() error

func (*UploadStatus) RemotePath

func (u *UploadStatus) RemotePath() string

func (*UploadStatus) SetStatus

func (u *UploadStatus) SetStatus(s status.Status, err error)

func (*UploadStatus) SetUploadedBytes

func (u *UploadStatus) SetUploadedBytes(b int64)

func (*UploadStatus) Size

func (u *UploadStatus) Size() int64

func (*UploadStatus) StartedAt

func (u *UploadStatus) StartedAt() time.Time

func (*UploadStatus) Status

func (u *UploadStatus) Status() status.Status

func (*UploadStatus) StatusChanges

func (u *UploadStatus) StatusChanges() status.Changes

func (*UploadStatus) TransferBytes

func (u *UploadStatus) TransferBytes() int64

type Uploader

type Uploader interface {
	UploadWithResume(...UploadOption) (UploadResumable, error)
	Find(files_sdk.FileFindParams, ...files_sdk.RequestResponseOption) (files_sdk.File, error)
}

type UploaderParams

type UploaderParams struct {
	// Ignore gitignore formatted pattern
	Ignore []string
	// Include gitignore formatted pattern
	Include []string
	// Sync compare destination and only upload if different or non-existent.
	Sync bool
	// LocalPaths files or directories to upload.
	LocalPaths []string
	// LocalPath a file or directory to recursively upload.
	LocalPath string
	// RemotePath destination path for files.com, formatted `/` path separator.
	RemotePath string
	// DryRun see what files would be uploaded.
	DryRun bool
	// RetryPolicy config for retrying errored uploads.
	RetryPolicy
	// EventsReporter log file events
	EventsReporter
	// Manager limit concurrency
	*manager.Manager
	*Job

	PreserveTimes bool
	// contains filtered or unexported fields
}

type WritableFile

type WritableFile struct {
	*Client
	*FS

	*bytes.Buffer
	// contains filtered or unexported fields
}

func (WritableFile) Close

func (w WritableFile) Close() (err error)

func (WritableFile) Write

func (w WritableFile) Write(p []byte) (int, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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