Thats not what I meant. What I don’t like is having two entries in the resource definition for two actions that are exact copies of each other. One action should be an alias, not a straight up copy, of the other. As I pointed out, we don’t have aliases.
With regard to the create method being an alias, it is not, as it is the only action present that calls RunInstances. I would take up the same argument if the request was to add a “RunInstances” action that did the same thing as the current create.
require 'aws-sdk'
s3 = Aws::S3::Resource.new(
region: ‘us-east-1’, # this should be the region your bucket was created in
credentials: Aws::Credentials.new(‘YOUR-ACESS-KEY’, ‘YOUR-SECRET-ACCESS-KEY’)
)
s3.bucket(’bucket-name’).object(’target-filename’).upload_file(‘/path/to/source/file’)
aws-flow-ruby
Aws::S3::Client
to upload files, but you have the manage the upload more. You have to choose between using #put_object
or using the multipart file APIs. Also, you need to open the source file for reading, etc. The #upload_file
will intelligently switch to a manged multipart upload using multiple threads for performance on large objects.
I am back again, still missing something. This seems like it should work but it doesn't, I get an AccessDenied. I am trying to just list the objects in a bucket, these are objects that I have successfully put there using my ruby script (Thanks Trevor!) . This is the script which I am
code
credentials = Aws::Credentials.new(@aws_access_key_id, @aws_secret_access_key)
client = Aws::S3::Client.new(
region: 'us-east-1', # this should be the region your bucket was created in
credentials: credentials)
client.list_objects(bucket: "<bucket-name>")
It is the last line that throws an error,
<Error><Code>AccessDenied</Code><Message>Access Denied</Message>
#upload_file
. I was hoping to find more information regarding that in the v2 SDK documentation but was unable to. Could you point me to the correct place? Also, what would be the proper way to use Aws::S3::Client
and multipart_upload? We've been struggling with with how to manage create and manage parts for the object.
GroupName
and GroupDescription
as the required parameters. But the EC2.api.json metadata and therefore the ruby client expects GroupName
and Description
(instead of GroupDescription
)Name
instead of Id
? https://github.com/aws/aws-sdk-ruby/blob/master/aws-sdk-core/apis/EC2.resources.json#L68Name
Aws::SQS::Client#send_message_batch
method allows you to send up to 10 messages in a single request. The 10 limit is imposed by the service, not the client. There is also a maximum payload size of 256KB per request. So if your messages are larger, you may not be able to send 10 in a single request without exceeding that size limit.
@nitinmohan87 I’ll try to answer these in order. The AWS EC2 documentation is documenting the wire-protocol, the format of the query string parameters as they are marshalled onto an HTTP request as a GET querystring or via a POST body. That representation is an implementation detail. The AWS SDKs, all of the, share a model of the API that gives friendlier, context sensitive names for many things. Some of these names will provide a pluralized name for a list where the wire procotol uses a singular name. Some will removed prefixes where it can be inferred from the context.
When using the Ruby SDK, you should be referencing its API documentation, not service protocol API docs.