[Cyberduck-trac] [Cyberduck] #7428: S3 first request against root path instead of defined path

Cyberduck trac at trac.cyberduck.ch
Wed Sep 4 09:42:35 UTC 2013


#7428: S3 first request against root path instead of defined path
-----------------------+-----------------------
    Reporter:  din     |      Owner:  dkocher
        Type:  defect  |     Status:  new
    Priority:  normal  |  Milestone:  4.4
   Component:  s3      |    Version:  4.3.1
    Severity:  minor   |   Keywords:
Architecture:  Intel   |   Platform:  Windows 7
-----------------------+-----------------------
 Hi,

 I am using cyberduck to connect swift openstack with S3 compatibility (S3
 connection). I have user in my account who has access only to specific
 contener and when I want to specify this contener in path in connection
 configuration, request are still made against root path:


 {{{
 Connection failed

 [Content]
 Request Error [<?xml version="1.0" encoding="UTF-8"?>
 <Error>
   <Code>InvalidURI</Code>
   <Message>Could not parse the specified URI</Message>
 </Error>
 ].

 [Expanded Information]
 GET / HTTP/1.1
 Date: Wed, 04 Sep 2013 08:38:20 GMT
 Authorization: AWS TestUser1234:user2:7eiwZgogQZHIH15ezrePKA/taKA=
 Host: swift.example.com:443
 Connection: Keep-Alive
 User-Agent: Cyberduck/4.3.1 (11008) (Windows 7/6.1) (x86)
 HTTP/1.1 400 Bad Request
 Content-Type: text/xml; charset=UTF-8
 Content-Length: 142
 X-Trans-Id: tx19ff67fdd6324b2092f5a63f316bd20f
 Date: Wed, 04 Sep 2013 08:38:24 GMT
 Connection: keep-alive
 }}}

 This error appears because this user does not have permission to list all
 containers ("GET /"). This is example of what I want to achieve using
 s3curl:

 {{{
 ./s3curl.pl --id 'TestUser1234:user2' --key '12345' --get -- -v -s
 http:/swift.example.com/write
 > GET /write HTTP/1.1
 > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0
 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
 > Host: swift.example.com
 > Accept: */*
 > Date: Wed, 04 Sep 2013 09:27:59 +0000
 > Authorization: AWS TestUser1234:user2:MMx5w6QnXMznzYorsR/v59UWbd0=
 >
 < HTTP/1.1 200 OK
 < Content-Type: application/xml; charset=UTF-8
 < Content-Length: 634
 < X-Trans-Id: txf872775ac3a141e490367e1281edde9d
 < Date: Wed, 04 Sep 2013 09:27:59 GMT
 }}}

 and a I get the same error like in cyberduck when try get root path:
 {{{
 ./s3curl.pl --id 'TestUser1234:user2' --key '12345' --get -- -v -s
 http://swift.example.com
 > GET / HTTP/1.1
 > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0
 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
 > Host: swift.example.com
 > Accept: */*
 > Date: Wed, 04 Sep 2013 09:32:42 +0000
 > Authorization: AWS TestUser1234:user2:+73L0pJhqXJSrF1le9POcjY594U=
 >
 < HTTP/1.1 400 Bad Request
 < Content-Type: text/xml; charset=UTF-8
 < Content-Length: 142
 < X-Trans-Id: tx782b945df6884d27ad3df0743148b7f7
 < Date: Wed, 04 Sep 2013 09:32:42 GMT
 <
 <?xml version="1.0" encoding="UTF-8"?>
 <Error>
   <Code>InvalidURI</Code>
   <Message>Could not parse the specified URI</Message>
 </Error>
 }}}

 when using user who has access to root path (admin in swift) cyberduck
 display content of container defined in path configuration.

-- 
Ticket URL: <https://trac.cyberduck.ch/ticket/7428>
Cyberduck <http://cyberduck.ch>
Open source FTP, SFTP, WebDAV, Cloud Files, Google Docs & Amazon S3 Browser for Mac & Windows.


More information about the Cyberduck-trac mailing list