Release: AWS SDK for iOS 0.2.0

Release Notes>SDKs>iOS>Release: AWS SDK for iOS 0.2.0
This release adds support for three new services (Amazon EC2, Amazon CloudWatch, and Amazon SES) and additional Amazon S3 features(multi-part uploads, versioning, and policy support).

Details

Submitted By: Glenn@AWS
Release Date: April 14, 2011 10:27 PM GMT
Latest Version: 0.2.0
Created On: April 14, 2011 10:27 PM GMT
Last Updated: April 14, 2011 10:27 PM GMT

Download

Download the AWS SDK for iOS 0.2.0

New Features

Change Description
Support for Amazon EC2

Added support for Amazon EC2 service.

Support for Amazon CloudWatch

Added support for Amazon CloudWatch service.

Support for Amazon SES

Added support for Amazon SES service.

Amazon S3 Multipart Uploads

The AWS SDK for iOS now supports the Amazon S3 operations related to Multipart Uploads. For more information about versioning see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/uploadobjusingmpu.html

Amazon S3 Versioning

The AWS SDK for iOS now supports the Amazon S3 operations related to bucket versioning. For more information about versioning see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html

The following is a code sample showing how to enable versioning on an Amazon S3 Bucket using the AWS SDK for iOS.

                AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:@"Access Key Here" withSecretKey:@"Secret Key Here"];
                S3CreateBucketRequest *cbr = [[[S3CreateBucketRequest alloc] initWithName:@"Your Bucket Name Here"] autorelease];
                [s3 createBucket:cbr];

                S3SetBucketVersioningConfigurationRequest *sbvcr = [[[S3SetBucketVersioningConfigurationRequest alloc] init] autorelease];
                sbvcr.bucket = @"Your Bucket Name Here";
                sbvcr.versioningConfiguration = [[[S3BucketVersioningConfiguration alloc] initWithStatus:@"Enabled"] autorelease];
                [s3 setBucketVersioningConfiguration:sbvcr];
            

Amazon S3 Policies

The AWS SDK for iOS now supports the Amazon S3 operations related to bucket policies. For more information about policies see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingBucketPolicies.html

The following is a code sample showing how to set a policy on an Amazon S3 Bucket using the AWS SDK for iOS.

             AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:@"Access Key Here" withSecretKey:@"Secret Key Here"];
             NSString *policyText = @"Your Policy Settings Here";

             // Create The Bucket
             S3CreateBucketRequest *cbr = [[[S3CreateBucketRequest alloc] initWithName:theBucketName] autorelease];
             [s3 createBucket:cbr];

             // Set the Policy
             S3SetBucketPolicyRequest *sbpr = [[[S3SetBucketPolicyRequest alloc] init] autorelease];
             sbpr.bucket = @"Your Bucket Name Here";
             sbpr.policy = [[[S3BucketPolicy alloc] initWithPolicy:policyText] autorelease];
             [s3 setBucketPolicy:sbpr];
            

Asynchronous Support

Allow for asynchronous handling of service requests. A delegate implementing the protocol AmazonServiceRequestDelegate can now be assigned to a Request object before it is sent. Then the specific methods in the protocol will be executed when appropriate.

Bug Fixes

The following fixes are also included in this release:

  • NSError is now accessible on failures when appropriate. Service requests can fail due to connection or device issues. Making NSError accessible in the AmazonClientException allows developers to understand why a request failed.
  • All Amazon S3 headers are now included in response objects. Amazon S3 can return many response headers. All headers are captured in the S3Response base class and exposed via the valueForHTTPHeaderField method.
  • Support for non-DNS bucket names in Amazon S3. The AWS SDK for iOS properly handles S3 buckets that do not conform to DNS naming specifications. The SDK does not allow the creation of non-DNS bucket names but will handle existing non-DNS buckets.
  • Proper handling for dates in non-US regions. For devices that are not configured for the US region the AWS iOS SDK now properly parses the dates for the device's region.
  • Proper handling for special characters. The AWS SDK for iOS now uses the appropriate Content-Type to allow for UTF-8 characters.

Supported API Versions

This release of the SDK supports the following API versions:

Service API Version
Amazon CloudWatch 2009-05-15
Amazon Elastic Compute Cloud (EC2) 2011-02-28
Amazon Simple Email Service (SES) 2010-12-01
Amazon Simple Notification Service (SNS) 2010-03-31
Amazon Simple Queue Service 2009-02-01
Amazon Simple Storage Service (S3) 2006-03-01
Amazon SimpleDB 2009-04-15

 

Known Issues

Issue Description
Amazon S3 over 3G Uploading large objects to Amazon S3 using 3G can fail frequently. Upgrading your iOS device to v4.3 helps reduce the failure rate. We are actively working with Apple to find a resolution to this problem.
Amazon S3 client does not work around known Amazon S3 issues. The Amazon S3 library does not currently work around two known issues with the Amazon S3 API:
  • Bucket names can include '+' symbols in the name, but the '+' symbol does not get replaced in URL encodings and can result in spaces in bucket names instead.
  • It is possible to create an object with a key which includes characters that are not valid XML characters, which will cause an error in the response to the AmazonS3Client listObjects method. Refer to http://docs.amazonwebservices.com/AmazonS3/2006-03-01/index.html?UsingKeys.html for guidelines on Amazon S3 keys.
©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved.