mirror of
https://github.com/rclone/rclone.git
synced 2025-08-16 16:41:34 +02:00
fs: move operations.NewOverrideRemote to fs.NewOverrideRemote
This commit is contained in:
@ -297,74 +297,6 @@ func removeFailedCopy(ctx context.Context, dst fs.Object) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// OverrideRemote is a wrapper to override the Remote for an
|
||||
// ObjectInfo
|
||||
type OverrideRemote struct {
|
||||
fs.ObjectInfo
|
||||
remote string
|
||||
}
|
||||
|
||||
// NewOverrideRemote returns an OverrideRemoteObject which will
|
||||
// return the remote specified
|
||||
func NewOverrideRemote(oi fs.ObjectInfo, remote string) *OverrideRemote {
|
||||
return &OverrideRemote{
|
||||
ObjectInfo: oi,
|
||||
remote: remote,
|
||||
}
|
||||
}
|
||||
|
||||
// Remote returns the overridden remote name
|
||||
func (o *OverrideRemote) Remote() string {
|
||||
return o.remote
|
||||
}
|
||||
|
||||
// MimeType returns the mime type of the underlying object or "" if it
|
||||
// can't be worked out
|
||||
func (o *OverrideRemote) MimeType(ctx context.Context) string {
|
||||
if do, ok := o.ObjectInfo.(fs.MimeTyper); ok {
|
||||
return do.MimeType(ctx)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// ID returns the ID of the Object if known, or "" if not
|
||||
func (o *OverrideRemote) ID() string {
|
||||
if do, ok := o.ObjectInfo.(fs.IDer); ok {
|
||||
return do.ID()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// UnWrap returns the Object that this Object is wrapping or nil if it
|
||||
// isn't wrapping anything
|
||||
func (o *OverrideRemote) UnWrap() fs.Object {
|
||||
if o, ok := o.ObjectInfo.(fs.Object); ok {
|
||||
return o
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetTier returns storage tier or class of the Object
|
||||
func (o *OverrideRemote) GetTier() string {
|
||||
if do, ok := o.ObjectInfo.(fs.GetTierer); ok {
|
||||
return do.GetTier()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Metadata returns metadata for an object
|
||||
//
|
||||
// It should return nil if there is no Metadata
|
||||
func (o *OverrideRemote) Metadata(ctx context.Context) (fs.Metadata, error) {
|
||||
if do, ok := o.ObjectInfo.(fs.Metadataer); ok {
|
||||
return do.Metadata(ctx)
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Check all optional interfaces satisfied
|
||||
var _ fs.FullObjectInfo = (*OverrideRemote)(nil)
|
||||
|
||||
// CommonHash returns a single hash.Type and a HashOption with that
|
||||
// type which is in common between the two fs.Fs.
|
||||
func CommonHash(ctx context.Context, fa, fb fs.Info) (hash.Type, *fs.HashesOption) {
|
||||
@ -491,7 +423,7 @@ func Copy(ctx context.Context, f fs.Fs, dst fs.Object, remote string, src fs.Obj
|
||||
var wrappedSrc fs.ObjectInfo = src
|
||||
// We try to pass the original object if possible
|
||||
if src.Remote() != remote {
|
||||
wrappedSrc = NewOverrideRemote(src, remote)
|
||||
wrappedSrc = fs.NewOverrideRemote(src, remote)
|
||||
}
|
||||
options := []fs.OpenOption{hashOption}
|
||||
for _, option := range ci.UploadHeaders {
|
||||
|
Reference in New Issue
Block a user