mirror of
https://github.com/rclone/rclone.git
synced 2024-12-23 07:29:35 +01:00
s3: fix encoding for control characters - Fixes #3345
This commit is contained in:
parent
6ae7bd7914
commit
a8adce9c59
@ -20,6 +20,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"path"
|
||||
"regexp"
|
||||
"strings"
|
||||
@ -1226,6 +1227,7 @@ func (f *Fs) list(ctx context.Context, bucket, directory, prefix string, addBuck
|
||||
Prefix: &directory,
|
||||
MaxKeys: &maxKeys,
|
||||
Marker: marker,
|
||||
EncodingType: aws.String(s3.EncodingTypeUrl),
|
||||
}
|
||||
var resp *s3.ListObjectsOutput
|
||||
var err error
|
||||
@ -1259,6 +1261,11 @@ func (f *Fs) list(ctx context.Context, bucket, directory, prefix string, addBuck
|
||||
continue
|
||||
}
|
||||
remote := *commonPrefix.Prefix
|
||||
remote, err = url.QueryUnescape(remote)
|
||||
if err != nil {
|
||||
fs.Logf(f, "failed to URL decode %q in listing common prefix: %v", *commonPrefix.Prefix, err)
|
||||
continue
|
||||
}
|
||||
if !strings.HasPrefix(remote, prefix) {
|
||||
fs.Logf(f, "Odd name received %q", remote)
|
||||
continue
|
||||
@ -1278,6 +1285,11 @@ func (f *Fs) list(ctx context.Context, bucket, directory, prefix string, addBuck
|
||||
}
|
||||
for _, object := range resp.Contents {
|
||||
remote := aws.StringValue(object.Key)
|
||||
remote, err = url.QueryUnescape(remote)
|
||||
if err != nil {
|
||||
fs.Logf(f, "failed to URL decode %q in listing: %v", aws.StringValue(object.Key), err)
|
||||
continue
|
||||
}
|
||||
if !strings.HasPrefix(remote, prefix) {
|
||||
fs.Logf(f, "Odd name received %q", remote)
|
||||
continue
|
||||
|
Loading…
Reference in New Issue
Block a user