MCPcopy
hub / github.com/rclone/rclone / fastCopy

Method fastCopy

cmd/bisync/queue.go:226–264  ·  view source on GitHub ↗
(ctx context.Context, fsrc, fdst fs.Fs, files bilib.Names, queueName string)

Source from the content-addressed store, hash-verified

224}
225
226func (b *bisyncRun) fastCopy(ctx context.Context, fsrc, fdst fs.Fs, files bilib.Names, queueName string) ([]Results, error) {
227 if b.InGracefulShutdown {
228 return nil, nil
229 }
230 ctx = b.preCopy(ctx)
231 if err := b.saveQueue(files, queueName); err != nil {
232 return nil, err
233 }
234
235 ctxCopy, filterCopy := filter.AddConfig(b.opt.setDryRun(ctx))
236 for _, file := range files.ToList() {
237 if err := filterCopy.AddFile(file); err != nil {
238 return nil, err
239 }
240 alias := b.aliases.Alias(file)
241 if alias != file {
242 if err := filterCopy.AddFile(alias); err != nil {
243 return nil, err
244 }
245 }
246 }
247
248 b.SyncCI = fs.GetConfig(ctxCopy) // allows us to request graceful shutdown
249 accounting.Stats(ctxCopy).SetMaxCompletedTransfers(-1) // we need a complete list in the event of graceful shutdown
250 ctxCopy, b.CancelSync = context.WithCancel(ctxCopy)
251 b.testFn()
252 err := sync.Sync(ctxCopy, fdst, fsrc, b.opt.CreateEmptySrcDirs)
253 prettyprint(b.queueOpt.logger, "b.queueOpt.logger", fs.LogLevelDebug)
254
255 getResults := ReadResults(b.queueOpt.logger.JSON)
256 fs.Debugf(nil, "Got %v results for %v", len(getResults), queueName)
257
258 lineFormat := "%s %8d %s %s %s %q\n"
259 for _, result := range getResults {
260 fs.Debugf(nil, lineFormat, result.Flags, result.Size, result.Hash, "", result.Modtime, result.Name)
261 }
262
263 return getResults, err
264}
265
266func (b *bisyncRun) retryFastCopy(ctx context.Context, fsrc, fdst fs.Fs, files bilib.Names, queueName string, results []Results, err error) ([]Results, error) {
267 ci := fs.GetConfig(ctx)

Callers 2

retryFastCopyMethod · 0.95
applyDeltasMethod · 0.95

Calls 15

preCopyMethod · 0.95
saveQueueMethod · 0.95
testFnMethod · 0.95
AddConfigFunction · 0.92
GetConfigFunction · 0.92
StatsFunction · 0.92
SyncFunction · 0.92
DebugfFunction · 0.92
prettyprintFunction · 0.85
ReadResultsFunction · 0.85
setDryRunMethod · 0.80
ToListMethod · 0.80

Tested by

no test coverage detected