I would like to pass on that using S3cmd works fine with Eucalyptus 4.0.2 (will be installing and testing 4.2.2 soon) with a twist… Assuming you are using Linux or the Bash on Windows 10 (Linux subsystem) for this exercise…
s3cmd is a commandline tool built in Python for accessing Object Storage via the commandline. This is useful for AWS S3, but also for HP Eucalyptus Walrus (Eucalyptus S3 Object storage–AWS compatible).
My command was as follows:
./s3cmd -v -c ./s3cfg la s3://vagrant-builds
A bucket I created with my account credentials should have list and read permission. Even switching to the ADMIN credentials the same error appears.
Then I noticed a little tidbit in the S3cmd –help file that said this:
Look at the entry that says:
--signature-v2 Use AWS Signature version 2 instead of newer signature methods.
Helpful for S3-like systems that don’t have AWS Signature v4 yet.
Thats right Velma, jinkees, a clue. AWS changes their API often and certain aspects of their code changes that invalidates using old APIs–which I guess makes sense from their upkeep point of view. BUT it makes it hard for honest Eucalyptus developers that are trying to peg their product to AWS Java SDK, so it seems they are a few signature versions back.
How to generate s3cfg These are detailed links to S3cmd and its setup.
Copy the text below and place it in a file named .s3cfg in your home directory.
access_key = YOURKEYHERE secret_key = YOURSECRETKEYHERE host_base = xxx.xxx.xxx.xxx:8773 host_bucket = xxx.xxx.xxx.xxx:8773 service_path = /services/objectstorage bucket_location = US default_mime_type = binary/octet-stream delete_removed = False dry_run = False enable_multipart = True encoding = UTF-8 encrypt = False follow_symlinks = False force = False get_continue = False gpg_command = /usr/bin/gpg gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_passphrase = password guess_mime_type = True human_readable_sizes = False invalidate_on_cf = False list_md5 = False log_target_prefix = mime_type = multipart_chunk_size_mb = 15 preserve_attrs = True progress_meter = True proxy_host = proxy_port = 0 recursive = False recv_chunk = 4096 reduced_redundancy = False send_chunk = 4096 skip_existing = False socket_timeout = 300 urlencoding_mode = normal use_https = False verbosity = WARNING
Adding this flag to the S3cmd solves the long listing problem using my own credentials.
./s3cmd -v --signature-v2 -c ./s3cfg la s3://vagrant-builds
Now the results are what I was looking for!