There is no bucket created on my NFS mount.
This is not an error specific to S3 browser tool.Even if I use this url in the 
IE browser, it gives 400-Bad request error.

When I give url as 
http://torvm-cloudstack-mgmt.sigmasys.net:7080/awsapi/rest/AmazonS3/test2342 
It gives error like :
<Error>
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist</Message>
<BucketName>test2342</BucketName>
<RequestId>1DEADBEEF9</RequestId>
<HostId>abCdeFgHiJ1k2LmN3op4q56r7st89</HostId>
</Error>

This is a normal behavior. Same behavior I should get when I don't pass any 
name of bucket.
>>>>>>>>>>>>>1.....Please check if this is a bug in CS4.

Now, when I create a bucket using the S3 AWS API on cloudstack
I get error as - OutOfStorageException: Unable to create /s3storage/test123 for 
bucket test123
Stacktrace is-
2013-03-26 07:13:47,796 INFO  [bridge.service.S3RestServlet] 
(catalina-exec-int-22:null) Request header x-amz-date:Tue, 26 Mar 2013 11:13:42 
GMT
2013-03-26 07:13:47,796 INFO  [bridge.service.S3RestServlet] 
(catalina-exec-int-22:null) Request header 
host:torvm-cloudstack-mgmt.sigmasys.net:7080
2013-03-26 07:13:47,796 INFO  [bridge.service.S3RestServlet] 
(catalina-exec-int-22:null) Request header content-length:0
2013-03-26 07:13:47,796 INFO  [bridge.service.S3RestServlet] 
(catalina-exec-int-22:null) Request header connection:Keep-Alive
2013-03-26 07:13:47,796 INFO  [bridge.service.S3RestServlet] 
(catalina-exec-int-22:null) - End of request -
2013-03-26 07:13:47,800 DEBUG [bridge.service.UserContext] 
(catalina-exec-int-22:null) initializing a new [anonymous] UserContext!
2013-03-26 07:13:47,815 ERROR [bridge.service.S3RestServlet] 
(catalina-exec-int-22:null) Unexpected exception Unable to create 
/s3storage/test123 for bucket test123
com.cloud.bridge.service.exception.OutOfStorageException: Unable to create 
/s3storage/test123 for bucket test123
        at 
com.cloud.bridge.io.S3FileSystemBucketAdapter.createContainer(S3FileSystemBucketAdapter.java:55)
        at 
com.cloud.bridge.service.core.s3.S3Engine.allocBucketStorageHost(S3Engine.java:1466)
        at 
com.cloud.bridge.service.core.s3.S3Engine.handleRequest(S3Engine.java:210)
        at 
com.cloud.bridge.service.controller.s3.S3BucketAction.executePutBucket(S3BucketAction.java:837)
        at 
com.cloud.bridge.service.controller.s3.S3BucketAction.execute(S3BucketAction.java:159)
        at 
com.cloud.bridge.service.S3RestServlet.processRequest(S3RestServlet.java:181)
        at com.cloud.bridge.service.S3RestServlet.doPut(S3RestServlet.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:640)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at 
org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889)
        at 
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721)
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2268)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)


What could be the reason?



Thanks and Regards.

Asmita 


-----Original Message-----
From: Sebastien Goasguen [mailto:run...@gmail.com] 
Sent: 26 March 2013 PM 04:33
To: Asmita Vagyani
Subject: Re: CS4 AWS S3 support


On Mar 26, 2013, at 6:56 AM, Asmita Vagyani <asmita.vagy...@sigma-systems.com> 
wrote:

> Hi Sebastien,
> 
> Thanks , after giving the FQDN instead of IP address, it works.
> Now, atleast the S3 browser is able to invoke the cloudstack S3 AWS REST API.
> 
> I saw in the documentation 
> https://cwiki.apache.org/CLOUDSTACK/s3-api-in-cloudstack.html
> It says to List All Buckets, simply make a call to :
> REST GET request, http://myhost:8080/awsapi/rest/AmazonS3
> 
> However, when I invoke 
> http://torvm-cloudstack-mgmt.sigmasys.net:7080/awsapi/rest/AmazonS3
> I get the 400 Bad request error on browser.
> I get the exception at backend when I checked awsapi.log:
> 

I have never used the S3 browser but it looks like you may have some existing 
buckets in there that cause the error.


> 2013-03-26 06:49:32,080 INFO  [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) Request servletPath: /rest/AmazonS3
> 2013-03-26 06:49:32,080 INFO  [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) Request header user-agent:S3 Browser3-8-1
> 2013-03-26 06:49:32,081 INFO  [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) Request header authorization:AWS 
> Qh69lnbtbr0H68i_Q7im7eZNhoFYUyHS8eDU9nyL2k3OP0gBGN0gNHfHWeKQo1EZq2r0MM
> ZK-23U9_wF6PMojg:RWAiwif28JxZ/le9mDkQskfPAd8=
> 2013-03-26 06:49:32,081 INFO  [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) Request header x-amz-date:Tue, 26 Mar 2013 
> 10:49:26 GMT
> 2013-03-26 06:49:32,081 INFO  [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) Request header 
> host:torvm-cloudstack-mgmt.sigmasys.net:7080
> 2013-03-26 06:49:32,081 INFO  [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) - End of request -
> 2013-03-26 06:49:32,093 DEBUG [bridge.service.UserContext] 
> (catalina-exec-int-20:null) initializing a new [anonymous] UserContext!
> 2013-03-26 06:49:32,093 ERROR [bridge.service.S3RestServlet] 
> (catalina-exec-int-20:null) Unexpected exception  is not between 3 and 
> 255 characters long
> com.cloud.bridge.service.exception.InvalidBucketName:  is not between 3 and 
> 255 characters long
>        at 
> com.cloud.bridge.service.core.s3.S3Engine.verifyBucketName(S3Engine.java:1809)
>        at 
> com.cloud.bridge.service.S3RestServlet.routeRequest(S3RestServlet.java:440)
>        at 
> com.cloud.bridge.service.S3RestServlet.processRequest(S3RestServlet.java:179)
>        at com.cloud.bridge.service.S3RestServlet.doGet(S3RestServlet.java:84)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>        at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>        at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>        at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>        at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
>        at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>        at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>        at 
> org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889)
>        at 
> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721)
>        at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2268)
>        at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>        at java.lang.Thread.run(Thread.java:722)
> 
> Thanks and Regards.
> 
> Asmita
> 
> -----Original Message-----
> From: Sebastien Goasguen [mailto:run...@gmail.com]
> Sent: 26 March 2013 PM 04:06
> To: Asmita Vagyani
> Subject: Re: CS4 AWS S3 support
> 
> 
> On Mar 26, 2013, at 6:25 AM, Asmita Vagyani 
> <asmita.vagy...@sigma-systems.com> wrote:
> 
>> Hi
>> Where do I register the DNS entry I mean do you mean a local DNS entry or 
>> what?
> 
> Local entry would do, as long as your "s3 browser" knows how to route 
> <server.com> to the IP of the endpoint.
> 
>> 
>> Thanks and Regards.
>> 
>> Asmita
>> 
>> -----Original Message-----
>> From: Sebastien Goasguen [mailto:run...@gmail.com]
>> Sent: 26 March 2013 PM 03:34
>> To: Asmita Vagyani
>> Subject: Re: CS4 AWS S3 support
>> 
>> 
>> On Mar 26, 2013, at 4:40 AM, Asmita Vagyani 
>> <asmita.vagy...@sigma-systems.com> wrote:
>> 
>>> Hi all,
>>> 
>>> I tried to use a couple of freewares/tools like CyberDuck, DragonDisk, etc 
>>> which interfaces the Cloudstack S3 APIs.
>>> I am stuck at one common point in all these tools.
>>> All tools say they support the alternative S3 compatible services, which in 
>>> our case is our Cloudstack AWS S3.
>>> However, it asks me endpoint of the S3 compatible service.
>>> When I mention the endpoint as 
>>> http://<cloudstack-server-IP:port>/awsapi/rest/AmazonS3 it doesnot accept 
>>> it.
>>> It wants the server name as server.com.
>>> 
>> 
>> Asmita, I woud do two things:
>> 
>> 1-Try to use boto like I explained in the slides, that should show you if 
>> the S3 service is working properly or not.
>> 2-If the S3 tools that you are using do not take an IP, then you will need 
>> to register a dns entry.
>> 
>> note that the S3 support is really a tech preview.
>> 
>> -sebastien
>> 
>>> Is there any way I can get the S3 webservice endpoint the way these tools 
>>> want.
>>> Is this because Cloudstack is not consistent with the EC2 endpoint.
>>> If yes, when are we planning to make it consistent.
>>> 
>>> 
>>> Thanks and Regards.
>>> 
>>> Asmita
>>> 
>>> -----Original Message-----
>>> From: Rajesh Battala [mailto:rajesh.batt...@citrix.com]
>>> Sent: 25 March 2013 PM 09:40
>>> To: users@cloudstack.apache.org; 'cloudstack-us...@incubator.apache.org'; 
>>> 'run...@gmail.com'
>>> Subject: RE: CS4 AWS S3 support
>>> 
>>> Am not sure whether s3 browser allows user to configure the settings to 
>>> access the cloudstack s3.
>>> If you can configure the settings the way we configure for boto then we can 
>>> use s3 browser.
>>> 
>>> Thanks
>>> Rajesh Battala
>>> 
>>>> -----Original Message-----
>>>> From: Asmita Vagyani [mailto:asmita.vagy...@sigma-systems.com]
>>>> Sent: Monday, March 25, 2013 7:09 PM
>>>> To: 'users@cloudstack.apache.org';
>>>> 'cloudstack-us...@incubator.apache.org';
>>>> 'run...@gmail.com'
>>>> Subject: RE: CS4 AWS S3 support
>>>> 
>>>> Are there any other clients, non-python based.
>>>> Can I integrate this with S3 browser, such that the S3 browser 
>>>> shows me buckets created on the NFS drive mounted using 
>>>> cloud-bridge.properties?
>>>> User can just upload and download files in S3 browser and 
>>>> ultimately on the NFS drive buckets.
>>>> 
>>>> 
>>>> Thanks and Regards.
>>>> 
>>>> Asmita
>>>> 
>>>> -----Original Message-----
>>>> From: Rajesh Battala [mailto:rajesh.batt...@citrix.com]
>>>> Sent: 25 March 2013 PM 04:42
>>>> To: users@cloudstack.apache.org;
>>>> 'cloudstack-us...@incubator.apache.org';
>>>> 'run...@gmail.com'
>>>> Subject: RE: CS4 AWS S3 support
>>>> 
>>>> Asmita,
>>>> You can follow this link. 
>>>> https://cwiki.apache.org/CLOUDSTACK/s3-api-in-
>>>> cloudstack.html
>>>> 
>>>> You can use boto client which is python based to send s3 requests to CS.
>>>> 
>>>> Thanks
>>>> Rajesh Battala
>>>> 
>>>>> -----Original Message-----
>>>>> From: Asmita Vagyani [mailto:asmita.vagy...@sigma-systems.com]
>>>>> Sent: Monday, March 25, 2013 4:13 PM
>>>>> To: 'users@cloudstack.apache.org'; 
>>>>> 'cloudstack-us...@incubator.apache.org';
>>>>> 'run...@gmail.com'
>>>>> Subject: RE: CS4 AWS S3 support
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I can see the entry of keys in the usercredential table in CS4 DB.
>>>>> When I access http://<server-ip>/awsapi link I get the servlet exception :
>>>>> 
>>>>> java.lang.RuntimeException: javax.servlet.ServletException: 
>>>>> Servlet execution threw an exception
>>>>>   
>>>>> com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet
>>>>> .java:104)
>>>>>   
>>>>> com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:
>>>>> 7
>>>>> 3)
>>>>> 
>>>>> How can I run S3 requests? any links to documentation would be helpful.
>>>>> 
>>>>> Thanks and Regards.
>>>>> 
>>>>> Asmita
>>>>> 
>>>>> 
>>>>> -----Original Message-----
>>>>> From: Rajesh Battala [mailto:rajesh.batt...@citrix.com]
>>>>> Sent: 25 March 2013 PM 03:35
>>>>> To: users@cloudstack.apache.org;
>>>>> 'cloudstack-us...@incubator.apache.org';
>>>>> 'run...@gmail.com'
>>>>> Subject: RE: CS4 AWS S3 support
>>>>> 
>>>>> Hi Asmita,
>>>>> 
>>>>> In the cloudbridge db, usercredentials table has the 
>>>>> username/password values present?
>>>>> Generally, for an existing account, generate the apikey/secrect 
>>>>> key and register them in awsapi.
>>>>> 
>>>>> Were you able to run s3 requests.?  Is awsap is running at 7080 port?
>>>>> 
>>>>> Thanks
>>>>> Rajesh Battala
>>>>> 
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: Asmita Vagyani [mailto:asmita.vagy...@sigma-systems.com]
>>>>>> Sent: Monday, March 25, 2013 3:24 PM
>>>>>> To: 'cloudstack-us...@incubator.apache.org'; 'run...@gmail.com'
>>>>>> Subject: CS4 AWS S3 support
>>>>>> 
>>>>>> Hi all,
>>>>>> 
>>>>>> I am trying to do following to have an implementation of S3 in 
>>>>>> our
>>>> application.
>>>>>> Followed steps given in:
>>>>>> http://www.slideshare.net/sebastiengoasguen/cloudstack-s3
>>>>>> 
>>>>>> 
>>>>>> 1)      I have enabled S3 support and EC2 support flag in the CS4 global
>>>>> variables.
>>>>>> 
>>>>>> 2)      I have mounted the NFS store on the CS4 management server  (I am
>>>> using
>>>>>> the NFS drive to store the buckets/files uploaded by user on this
>>>>>> drive)
>>>>>> 
>>>>>> 3)      I have configured the cloud-bridge.properties appropriately
>>>>>> 
>>>>>> host=http://localhost:7080/awsapi
>>>>>> 
>>>>>> storage.root=/s3storage
>>>>>> 
>>>>>> storage.multipartDir=__multipart__uploads__
>>>>>> 
>>>>>> bucket.dns=false
>>>>>> 
>>>>>> serviceEndpoint=localhost:7080
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 4)      I made up a user account into CS4 client console, generated the 
>>>>>> API key
>>>>>> and the Secret key.
>>>>>> 
>>>>>> 5)      I have registered the user by using cloudstack-aws-api-register 
>>>>>> (refer -
>>>>>> http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.1-
>>>>>> incubating/html/Installation_Guide/aws-ec2-user-setup.html   )
>>>>>> 
>>>>>> 6)      I have downloaded the S3 browser.
>>>>>> 
>>>>>> 7)      I am trying to make an account with the same user API key and 
>>>>>> Secret
>>>> key
>>>>>> which we create on Cloudstack.
>>>>>> 
>>>>>> While creating an account it says - InvalidAccesskeyId
>>>>>> 
>>>>>> Any hints if I am missing some step here?
>>>>>> 
>>>>>> Thanks and Regards.
>>>>>> 
>>>>>> Asmita Patil Vagyani.
>>>>>> 
>>>>>> Tech Lead,  Sigma Software Solutions, Pune,
>>>>>> 
>>>>>> T: +91-20-25661992 / 93 / 94. Extn. : 286
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 
> 
> 
> 



Reply via email to