MetadataDirective: "REPLACE",
}, v.bucket.Name+"/"+src)
err = v.translateError(err)
- if err != nil {
+ if os.IsNotExist(err) {
return err
+ } else if err != nil {
+ return fmt.Errorf("PutCopy(%q ← %q): %s", dst, v.bucket.Name+"/"+src, err)
}
if t, err := time.Parse(time.RFC3339Nano, resp.LastModified); err != nil {
return fmt.Errorf("PutCopy succeeded but did not return a timestamp: %q: %s", resp.LastModified, err)
for _, volume := range volumes {
mtime, err := volume.Mtime(trashRequest.Locator)
if err != nil {
- log.Printf("%v Delete(%v): %v", volume, trashRequest.Locator, err)
+ log.Printf("%v Trash(%v): %v", volume, trashRequest.Locator, err)
continue
}
if trashRequest.BlockMtime != mtime.UnixNano() {
- log.Printf("%v Delete(%v): stored mtime %v does not match trash list value %v", volume, trashRequest.Locator, mtime.UnixNano(), trashRequest.BlockMtime)
+ log.Printf("%v Trash(%v): stored mtime %v does not match trash list value %v", volume, trashRequest.Locator, mtime.UnixNano(), trashRequest.BlockMtime)
continue
}
if !theConfig.EnableDelete {
- err = errors.New("did not delete block because EnableDelete is false")
+ err = errors.New("skipping because EnableDelete is false")
} else {
err = volume.Trash(trashRequest.Locator)
}
if err != nil {
- log.Printf("%v Delete(%v): %v", volume, trashRequest.Locator, err)
+ log.Printf("%v Trash(%v): %v", volume, trashRequest.Locator, err)
} else {
- log.Printf("%v Delete(%v) OK", volume, trashRequest.Locator)
+ log.Printf("%v Trash(%v) OK", volume, trashRequest.Locator)
}
}
}