[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