mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 16:34:30 +01:00
dropbox: Issue an error message when trying to upload bad file name - fixes #108
This commit is contained in:
parent
8c4d91cff7
commit
bc19e2d84b
@ -80,3 +80,9 @@ MD5SUMs so syncs will effectively have the `--size-only` flag set.
|
|||||||
|
|
||||||
Note that Dropbox is case sensitive so you can't have a file called
|
Note that Dropbox is case sensitive so you can't have a file called
|
||||||
"Hello.doc" and one called "hello.doc".
|
"Hello.doc" and one called "hello.doc".
|
||||||
|
|
||||||
|
There are some file names such as `thumbs.db` which Dropbox can't
|
||||||
|
store. There is a full list of them in the ["Ignored Files" section
|
||||||
|
of this document](https://www.dropbox.com/en/help/145). Rclone will
|
||||||
|
issue an error message `File name disallowed - not uploading` if it
|
||||||
|
attempt to upload one of those file names, but the sync won't fail.
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"path"
|
"path"
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -51,6 +52,10 @@ const (
|
|||||||
metadataLimit = dropbox.MetadataLimitDefault // max items to fetch at once
|
metadataLimit = dropbox.MetadataLimitDefault // max items to fetch at once
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// A regexp matching path names for files Dropbox ignores
|
||||||
|
// See https://www.dropbox.com/en/help/145 - Ignored files
|
||||||
|
var ignoredFiles = regexp.MustCompile(`(?i)(^|/)(desktop\.ini|thumbs\.db|\.ds_store|icon\r|\.dropbox|\.dropbox.attr)$`)
|
||||||
|
|
||||||
// Register with Fs
|
// Register with Fs
|
||||||
func init() {
|
func init() {
|
||||||
fs.Register(&fs.FsInfo{
|
fs.Register(&fs.FsInfo{
|
||||||
@ -542,7 +547,12 @@ func (o *FsObjectDropbox) Open() (in io.ReadCloser, err error) {
|
|||||||
//
|
//
|
||||||
// The new object may have been created if an error is returned
|
// The new object may have been created if an error is returned
|
||||||
func (o *FsObjectDropbox) Update(in io.Reader, modTime time.Time, size int64) error {
|
func (o *FsObjectDropbox) Update(in io.Reader, modTime time.Time, size int64) error {
|
||||||
entry, err := o.dropbox.db.UploadByChunk(ioutil.NopCloser(in), uploadChunkSize, o.remotePath(), true, "")
|
remote := o.remotePath()
|
||||||
|
if ignoredFiles.MatchString(remote) {
|
||||||
|
fs.ErrorLog(o, "File name disallowed - not uploading")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
entry, err := o.dropbox.db.UploadByChunk(ioutil.NopCloser(in), uploadChunkSize, remote, true, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Upload failed: %s", err)
|
return fmt.Errorf("Upload failed: %s", err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user