Cyberduck Mountain Duck CLI

#7284 closed defect (thirdparty)

Impossible to access a storage container when a file which name includes special caracters has previously been uploaded

Reported by: benmauff Owned by: dkocher
Priority: high Milestone: 4.4
Component: s3 Version: 4.3.1
Severity: critical Keywords: special caracters, S3
Cc: Architecture:
Platform: Windows 7

Description (last modified by dkocher)

Configuration: Swift + S3

This issue has been encountered in the following scenario: 1 Upload the following file in a S3 container: Nom de fichier €%£ - Copie.xlsx

2 Access the folder where this file has been updated and check it has been added

Result: it is now impossible to access the container; we get an Internal Server Error (see screenshots).

Here is our first internal analysis:

  • Creating object with special characters works in Swift:
~$ curl -H 'Content-Length: 0' -i http://localhost:8080/v1/AUTH_05b7534319e849ba93c68462726057fb/newcont/€%£-Copie.xlsx -X PUT -H "X-Auth-Token: 2438e55a25a8407fa6318fea4e7bd10a"
~$ curl -i http://localhost:8080/v1/AUTH_05b7534319e849ba93c68462726057fb/newcont -X GET -H "X-Auth-Token: 2438e55a25a8407fa6318fea4e7bd10a"
HTTP/1.1 200 OK
Content-Length: 29
X-Container-Object-Count: 2
Accept-Ranges: bytes
X-Timestamp: 1369816325.76530
X-Container-Bytes-Used: 1196
Content-Type: text/plain; charset=utf-8
X-Trans-Id: tx16fe028810ba4be39506b-0051a5cc5d
Date: Wed, 29 May 2013 09:37:33 GMT
etc/passwd
€%£-Copie.xlsx

but not in Cyberduck.

  • this works as well with the S3 API, the script is here :

http://p.chmouel.com/s3testutf8.py

and the output :

ParseResult(scheme='http', netloc='46.231.128.140:8080', path='', params='', query='', fragment='')
Delete key: €%£ - Copie.xlsx
Deleting bucket: cont_s3
Creating bucket: cont_s3
uploading: €%£ - Copie.xlsx
uploaded object
€%£ - Copie.xlsx

Attachments (1)

ScreenShot699.jpg (75.5 KB) - added by benmauff on Jun 5, 2013 at 3:41:11 PM.
Screenshot of the Internal Server Error we get when trying to access the updated container

Download all attachments as: .zip

Change History (3)

Changed on Jun 5, 2013 at 3:41:11 PM by benmauff

Screenshot of the Internal Server Error we get when trying to access the updated container

comment:1 Changed on Jun 5, 2013 at 7:46:17 PM by dkocher

  • Description modified (diff)
  • Milestone set to 4.3.2

comment:2 Changed on Jun 20, 2013 at 6:53:24 PM by dkocher

  • Resolution set to thirdparty
  • Status changed from new to closed

The server responds with a 503 error indicating an internal problem. If Cyberduck would issue a bad request because of the filename, a 4xx error would be returned.

I have tested this with S3 with no issues.

 PUT /%E2%82%AC%25-test%2F HTTP/1.1
Date: Thu, 20 Jun 2013 18:51:23 GMT
x-amz-acl: private
Content-Type: application/x-directory
Content-Length: 0
Host: test.cyberduck.ch.s3.amazonaws.com:443
Connection: Keep-Alive
User-Agent: Cyberduck/4.3.2 (Mac OS X/10.8.4) (x86_64)
HTTP/1.1 200 OK
x-amz-id-2: a7byWVhivBANX42UX6izI3MNamaaPsTgYU3d5t9uAABm+mAOj/n8WKJsI+KAawmz
x-amz-request-id: 7920C93379971396
Date: Thu, 20 Jun 2013 18:51:25 GMT
ETag: "d41d8cd98f00b204e9800998ecf8427e"
Content-Length: 0
Server: AmazonS3
GET /?delimiter=%2F&max-keys=1000&prefix HTTP/1.1
Date: Thu, 20 Jun 2013 18:51:24 GMT
Host: test.cyberduck.ch.s3.amazonaws.com:443
Connection: Keep-Alive
User-Agent: Cyberduck/4.3.2 (Mac OS X/10.8.4) (x86_64)
HTTP/1.1 200 OK
x-amz-id-2: 2T6Tvlaw5Y/SQSfqf9+DTRt4YtZdmnXCZorumRhJxJh0ubRUV32ftcpzFux9BBEI
x-amz-request-id: E1764AE7C9E2EF95
Date: Thu, 20 Jun 2013 18:51:25 GMT
Content-Type: application/xml
Transfer-Encoding: chunked
Server: AmazonS3
GET /?delimiter=%2F&max-keys=1000&prefix=%E2%82%AC%25-test%2F HTTP/1.1
Date: Thu, 20 Jun 2013 18:51:28 GMT
Host: test.cyberduck.ch.s3.amazonaws.com:443
Connection: Keep-Alive
User-Agent: Cyberduck/4.3.2 (Mac OS X/10.8.4) (x86_64)
HTTP/1.1 200 OK
x-amz-id-2: bAiHUpjqI4T5sa2LVe4Z68v0Og1LrgUTyI9PxeEHoPlc2wRXWrbgS4a24hi36GyQ
x-amz-request-id: EE4778FAC87DDF90
Date: Thu, 20 Jun 2013 18:51:29 GMT
Content-Type: application/xml
Transfer-Encoding: chunked
Server: AmazonS3
POST /?delete HTTP/1.1
Date: Thu, 20 Jun 2013 18:51:29 GMT
Content-MD5: woHjRbGllH5ApVFhdpkLDA==
Content-Type: text/plain
Content-Length: 159
Host: test.cyberduck.ch.s3.amazonaws.com:443
Connection: Keep-Alive
User-Agent: Cyberduck/4.3.2 (Mac OS X/10.8.4) (x86_64)
Expect: 100-continue
HTTP/1.1 200 OK
x-amz-id-2: IOqVuD9c2eNhj13dikeadp0qp0HIYiJ3OOxIhw11gMXttM6tg+C7zlhLgmyqvX4f
x-amz-request-id: 4B79949F97DAB02D
Date: Thu, 20 Jun 2013 18:51:30 GMT
Content-Type: application/xml
Transfer-Encoding: chunked
Server: AmazonS3
GET /?delimiter=%2F&max-keys=1000&prefix HTTP/1.1
Date: Thu, 20 Jun 2013 18:51:29 GMT
Host: test.cyberduck.ch.s3.amazonaws.com:443
Connection: Keep-Alive
User-Agent: Cyberduck/4.3.2 (Mac OS X/10.8.4) (x86_64)
HTTP/1.1 200 OK
x-amz-id-2: UvxuO5MiYGm+vnSELX2XZO3G/KveCSwafgSgOW3XQZwQv3O4HcQFGk+1iH8XesO+
x-amz-request-id: 38A46D39B011A51C
Date: Thu, 20 Jun 2013 18:51:31 GMT
Content-Type: application/xml
Transfer-Encoding: chunked
Server: AmazonS3
Note: See TracTickets for help on using tickets.
swiss made software