Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

AWS SDK for iOS 1.0.1

  • Loading branch information...
commit f12733635d62fb8afe66ce637106fc7a253334eb 1 parent 9e1ad59
amazonwebservices authored
Showing with 5,038 additions and 748 deletions.
  1. +9 −9 samples/AWSiOSDemoTVM/AWSiOSDemoTVM/Classes/TVMClient/RegisterDeviceRequest.m
  2. +2 −2 samples/AWSiOSDemoTVM/AWSiOSDemoTVM/Classes/TVMClient/ResponseHandler.h
  3. +1 −1  samples/AWSiOSDemoTVMIdentity/AWSiOSDemoTVMIdentity/Classes/Constants.h
  4. +2 −2 samples/AWSiOSDemoTVMIdentity/AWSiOSDemoTVMIdentity/Classes/TVMClient/ResponseHandler.h
  5. BIN  samples/S3Uploader/.DS_Store
  6. +17 −0 samples/S3Uploader/README.html
  7. +247 −0 samples/S3Uploader/S3Uploader.html
  8. +302 −0 samples/S3Uploader/S3Uploader.xcodeproj/project.pbxproj
  9. +7 −0 samples/S3Uploader/S3Uploader.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  10. BIN  samples/S3Uploader/S3Uploader/.DS_Store
  11. +42 −0 samples/S3Uploader/S3Uploader/Constants.h
  12. +33 −0 samples/S3Uploader/S3Uploader/Constants.m
  13. +38 −0 samples/S3Uploader/S3Uploader/S3Uploader-Info.plist
  14. +14 −0 samples/S3Uploader/S3Uploader/S3Uploader-Prefix.pch
  15. +28 −0 samples/S3Uploader/S3Uploader/S3UploaderAppDelegate.h
  16. +82 −0 samples/S3Uploader/S3Uploader/S3UploaderAppDelegate.m
  17. +25 −0 samples/S3Uploader/S3Uploader/S3UploaderViewController.h
  18. +94 −0 samples/S3Uploader/S3Uploader/S3UploaderViewController.m
  19. +2 −0  samples/S3Uploader/S3Uploader/en.lproj/InfoPlist.strings
  20. +444 −0 samples/S3Uploader/S3Uploader/en.lproj/MainWindow.xib
  21. +308 −0 samples/S3Uploader/S3Uploader/en.lproj/S3UploaderViewController.xib
  22. +17 −0 samples/S3Uploader/S3Uploader/main.m
  23. +94 −66 src/Amazon.AutoScaling/AmazonAutoScalingClient.m
  24. +4 −0 src/Amazon.AutoScaling/Model/AutoScalingAutoScalingGroup.m
  25. +5 −10 src/Amazon.AutoScaling/Model/AutoScalingAutoScalingGroupUnmarshaller.m
  26. +5 −1 src/Amazon.AutoScaling/Model/AutoScalingCreateAutoScalingGroupRequestMarshaller.m
  27. +4 −4 src/Amazon.AutoScaling/Model/AutoScalingCreateAutoScalingGroupResponse.m
  28. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingCreateLaunchConfigurationRequestMarshaller.m
  29. +4 −4 src/Amazon.AutoScaling/Model/AutoScalingCreateLaunchConfigurationResponse.m
  30. +11 −0 src/Amazon.AutoScaling/Model/AutoScalingDeleteAutoScalingGroupRequest.m
  31. +6 −1 src/Amazon.AutoScaling/Model/AutoScalingDeleteAutoScalingGroupRequestMarshaller.m
  32. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingDeleteLaunchConfigurationRequestMarshaller.m
  33. +61 −0 src/Amazon.AutoScaling/Model/AutoScalingDeleteNotificationConfigurationRequest.m
  34. +48 −0 src/Amazon.AutoScaling/Model/AutoScalingDeleteNotificationConfigurationRequestMarshaller.m
  35. +57 −0 src/Amazon.AutoScaling/Model/AutoScalingDeleteNotificationConfigurationResponse.m
  36. +50 −0 src/Amazon.AutoScaling/Model/AutoScalingDeleteNotificationConfigurationResponseUnmarshaller.m
  37. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingDeletePolicyRequestMarshaller.m
  38. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingDeleteScheduledActionRequestMarshaller.m
  39. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingDescribeAdjustmentTypesRequestMarshaller.m
  40. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDescribeAutoScalingGroupsRequestMarshaller.m
  41. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDescribeAutoScalingInstancesRequestMarshaller.m
  42. +52 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeAutoScalingNotificationTypesRequest.m
  43. +38 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeAutoScalingNotificationTypesRequestMarshaller.m
  44. +73 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeAutoScalingNotificationTypesResponse.m
  45. +75 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeAutoScalingNotificationTypesResponseUnmarshaller.m
  46. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDescribeLaunchConfigurationsRequestMarshaller.m
  47. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingDescribeMetricCollectionTypesRequestMarshaller.m
  48. +65 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeNotificationConfigurationsRequest.m
  49. +59 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeNotificationConfigurationsRequestMarshaller.m
  50. +81 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeNotificationConfigurationsResponse.m
  51. +80 −0 src/Amazon.AutoScaling/Model/AutoScalingDescribeNotificationConfigurationsResponseUnmarshaller.m
  52. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDescribePoliciesRequestMarshaller.m
  53. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDescribeScalingActivitiesRequestMarshaller.m
  54. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingDescribeScalingProcessTypesRequestMarshaller.m
  55. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDescribeScheduledActionsRequestMarshaller.m
  56. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingDisableMetricsCollectionRequestMarshaller.m
  57. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingEnableMetricsCollectionRequestMarshaller.m
  58. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingExecutePolicyRequestMarshaller.m
  59. +0 −5 src/Amazon.AutoScaling/Model/AutoScalingLaunchConfigurationUnmarshaller.m
  60. +65 −0 src/Amazon.AutoScaling/Model/AutoScalingNotificationConfiguration.m
  61. +81 −0 src/Amazon.AutoScaling/Model/AutoScalingNotificationConfigurationUnmarshaller.m
  62. +65 −0 src/Amazon.AutoScaling/Model/AutoScalingPutNotificationConfigurationRequest.m
  63. +59 −0 src/Amazon.AutoScaling/Model/AutoScalingPutNotificationConfigurationRequestMarshaller.m
  64. +61 −0 src/Amazon.AutoScaling/Model/AutoScalingPutNotificationConfigurationResponse.m
  65. +50 −0 src/Amazon.AutoScaling/Model/AutoScalingPutNotificationConfigurationResponseUnmarshaller.m
  66. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingPutScalingPolicyRequestMarshaller.m
  67. +12 −0 src/Amazon.AutoScaling/Model/AutoScalingPutScheduledUpdateGroupActionRequest.m
  68. +16 −1 src/Amazon.AutoScaling/Model/AutoScalingPutScheduledUpdateGroupActionRequestMarshaller.m
  69. +4 −4 src/Amazon.AutoScaling/Model/AutoScalingPutScheduledUpdateGroupActionResponse.m
  70. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingResumeProcessesRequestMarshaller.m
  71. +12 −0 src/Amazon.AutoScaling/Model/AutoScalingScheduledUpdateGroupAction.m
  72. +15 −0 src/Amazon.AutoScaling/Model/AutoScalingScheduledUpdateGroupActionUnmarshaller.m
  73. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingSetDesiredCapacityRequestMarshaller.m
  74. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingSetInstanceHealthRequestMarshaller.m
  75. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingSuspendProcessesRequestMarshaller.m
  76. +1 −1  src/Amazon.AutoScaling/Model/AutoScalingTerminateInstanceInAutoScalingGroupRequestMarshaller.m
  77. +3 −1 src/Amazon.AutoScaling/Model/AutoScalingUpdateAutoScalingGroupRequestMarshaller.m
  78. +2 −0  src/Amazon.CloudWatch/Model/CloudWatchDeleteAlarmsRequestMarshaller.m
  79. +2 −0  src/Amazon.CloudWatch/Model/CloudWatchDescribeAlarmsRequestMarshaller.m
  80. +2 −0  src/Amazon.CloudWatch/Model/CloudWatchDisableAlarmActionsRequestMarshaller.m
  81. +2 −0  src/Amazon.CloudWatch/Model/CloudWatchEnableAlarmActionsRequestMarshaller.m
  82. +2 −0  src/Amazon.CloudWatch/Model/CloudWatchGetMetricStatisticsRequestMarshaller.m
  83. +0 −15 src/Amazon.CloudWatch/Model/CloudWatchMetricAlarmUnmarshaller.m
  84. +6 −0 src/Amazon.CloudWatch/Model/CloudWatchPutMetricAlarmRequestMarshaller.m
  85. +2 −0  src/Amazon.EC2/Model/EC2CancelSpotInstanceRequestsRequestMarshaller.m
  86. +2 −0  src/Amazon.EC2/Model/EC2CreateTagsRequestMarshaller.m
  87. +2 −0  src/Amazon.EC2/Model/EC2DeleteTagsRequestMarshaller.m
  88. +6 −0 src/Amazon.EC2/Model/EC2DescribeAddressesRequestMarshaller.m
  89. +4 −0 src/Amazon.EC2/Model/EC2DescribeAvailabilityZonesRequestMarshaller.m
  90. +4 −0 src/Amazon.EC2/Model/EC2DescribeBundleTasksRequestMarshaller.m
  91. +8 −0 src/Amazon.EC2/Model/EC2DescribeImagesRequestMarshaller.m
  92. +4 −0 src/Amazon.EC2/Model/EC2DescribeInstancesRequestMarshaller.m
  93. +4 −0 src/Amazon.EC2/Model/EC2DescribeKeyPairsRequestMarshaller.m
  94. +4 −0 src/Amazon.EC2/Model/EC2DescribeLicensesRequestMarshaller.m
  95. +4 −0 src/Amazon.EC2/Model/EC2DescribePlacementGroupsRequestMarshaller.m
  96. +4 −0 src/Amazon.EC2/Model/EC2DescribeRegionsRequestMarshaller.m
  97. +4 −0 src/Amazon.EC2/Model/EC2DescribeReservedInstancesOfferingsRequestMarshaller.m
  98. +4 −0 src/Amazon.EC2/Model/EC2DescribeReservedInstancesRequestMarshaller.m
  99. +6 −0 src/Amazon.EC2/Model/EC2DescribeSecurityGroupsRequestMarshaller.m
  100. +8 −0 src/Amazon.EC2/Model/EC2DescribeSnapshotsRequestMarshaller.m
  101. +4 −0 src/Amazon.EC2/Model/EC2DescribeSpotInstanceRequestsRequestMarshaller.m
  102. +6 −0 src/Amazon.EC2/Model/EC2DescribeSpotPriceHistoryRequestMarshaller.m
  103. +2 −0  src/Amazon.EC2/Model/EC2DescribeTagsRequestMarshaller.m
  104. +4 −0 src/Amazon.EC2/Model/EC2DescribeVolumesRequestMarshaller.m
  105. +9 −1 src/Amazon.EC2/Model/EC2IpPermissionUnmarshaller.m
  106. +9 −1 src/Amazon.EC2/Model/EC2LaunchSpecificationUnmarshaller.m
  107. +6 −0 src/Amazon.EC2/Model/EC2ModifyImageAttributeRequestMarshaller.m
  108. +2 −0  src/Amazon.EC2/Model/EC2ModifyInstanceAttributeRequestMarshaller.m
  109. +4 −0 src/Amazon.EC2/Model/EC2ModifySnapshotAttributeRequestMarshaller.m
  110. +2 −0  src/Amazon.EC2/Model/EC2MonitorInstancesRequestMarshaller.m
  111. +2 −0  src/Amazon.EC2/Model/EC2RebootInstancesRequestMarshaller.m
  112. +9 −1 src/Amazon.EC2/Model/EC2ReservationUnmarshaller.m
  113. +4 −0 src/Amazon.EC2/Model/EC2RunInstancesRequestMarshaller.m
  114. +2 −0  src/Amazon.EC2/Model/EC2StartInstancesRequestMarshaller.m
  115. +2 −0  src/Amazon.EC2/Model/EC2StopInstancesRequestMarshaller.m
  116. +2 −0  src/Amazon.EC2/Model/EC2TerminateInstancesRequestMarshaller.m
  117. +2 −0  src/Amazon.EC2/Model/EC2UnmonitorInstancesRequestMarshaller.m
  118. +0 −5 src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingBackendServerDescriptionUnmarshaller.m
  119. +2 −0  src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingCreateLoadBalancerRequestMarshaller.m
  120. +2 −0  src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingDeleteLoadBalancerListenersRequestMarshaller.m
  121. +2 −0  src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingDescribeLoadBalancerPoliciesRequestMarshaller.m
  122. +2 −0  src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingDescribeLoadBalancerPolicyTypesRequestMarshaller.m
  123. +2 −0  src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingDescribeLoadBalancersRequestMarshaller.m
  124. +2 −0  ...n.ElasticLoadBalancing/Model/ElasticLoadBalancingDisableAvailabilityZonesForLoadBalancerRequestMarshaller.m
  125. +0 −5 ...lasticLoadBalancing/Model/ElasticLoadBalancingDisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.m
  126. +2 −0  ...on.ElasticLoadBalancing/Model/ElasticLoadBalancingEnableAvailabilityZonesForLoadBalancerRequestMarshaller.m
  127. +0 −5 ...ElasticLoadBalancing/Model/ElasticLoadBalancingEnableAvailabilityZonesForLoadBalancerResponseUnmarshaller.m
  128. +0 −5 src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingListenerDescriptionUnmarshaller.m
  129. +0 −5 src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingLoadBalancerDescriptionUnmarshaller.m
  130. +0 −5 src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingPoliciesUnmarshaller.m
  131. +10 −0 src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingPolicyAttribute.m
  132. +6 −0 ...n.ElasticLoadBalancing/Model/ElasticLoadBalancingSetLoadBalancerPoliciesForBackendServerRequestMarshaller.m
  133. +2 −0  src/Amazon.ElasticLoadBalancing/Model/ElasticLoadBalancingSetLoadBalancerPoliciesOfListenerRequestMarshaller.m
  134. +19 −2 src/Amazon.Runtime/AmazonServiceResponse.m
  135. +3 −0  src/Amazon.Runtime/AmazonWebServiceClient.m
  136. +6 −11 src/Amazon.S3/AmazonS3Client.m
  137. +5 −0 src/Amazon.S3/Model/S3AbstractPutRequest.m
  138. +1 −1  src/Amazon.S3/Model/S3Request.m
  139. +15 −1 src/Amazon.S3/Model/S3Response.m
  140. +6 −3 src/Amazon.S3/Model/S3UploadPartRequest.m
  141. +0 −5 src/Amazon.SES/Model/SESListVerifiedEmailAddressesResponseUnmarshaller.m
  142. +8 −0 src/Amazon.SES/Model/SESSendEmailRequestMarshaller.m
  143. +2 −0  src/Amazon.SES/Model/SESSendRawEmailRequestMarshaller.m
  144. +4 −0 src/Amazon.SNS/Model/SNSAddPermissionRequestMarshaller.m
  145. +4 −0 src/Amazon.SQS/Model/SQSAddPermissionRequestMarshaller.m
  146. +0 −10 src/Amazon.SQS/Model/SQSCreateQueueRequest.m
  147. +2 −0  src/Amazon.SQS/Model/SQSGetQueueAttributesRequestMarshaller.m
  148. +0 −1  src/Amazon.SQS/Model/SQSListQueuesResponseUnmarshaller.m
  149. +2 −0  src/Amazon.SQS/Model/SQSReceiveMessageRequestMarshaller.m
  150. +2 −0  src/Amazon.SimpleDB/Model/SimpleDBGetAttributesRequestMarshaller.m
  151. +0 −1  src/Amazon.SimpleDB/Model/SimpleDBListDomainsResponseUnmarshaller.m
  152. BIN  src/include/.DS_Store
  153. +2 −2 src/include/AmazonSDKUtil.h
  154. +1 −4 src/include/AmazonServiceRequest.h
  155. +7 −0 src/include/AmazonServiceResponse.h
  156. +445 −321 src/include/AutoScaling/AmazonAutoScalingClient.h
  157. +11 −1 src/include/AutoScaling/AutoScalingAutoScalingGroup.h
  158. +1 −2  src/include/AutoScaling/AutoScalingCreateAutoScalingGroupRequest.h
  159. +1 −1  src/include/AutoScaling/AutoScalingCreateAutoScalingGroupResponse.h
  160. +22 −17 src/include/AutoScaling/AutoScalingCreateLaunchConfigurationRequest.h
  161. +2 −1  src/include/AutoScaling/AutoScalingCreateLaunchConfigurationRequestMarshaller.h
  162. +1 −1  src/include/AutoScaling/AutoScalingCreateLaunchConfigurationResponse.h
  163. +11 −0 src/include/AutoScaling/AutoScalingDeleteAutoScalingGroupRequest.h
  164. +70 −0 src/include/AutoScaling/AutoScalingDeleteNotificationConfigurationRequest.h
  165. +33 −0 src/include/AutoScaling/AutoScalingDeleteNotificationConfigurationRequestMarshaller.h
  166. +30 −0 src/include/AutoScaling/AutoScalingDeleteNotificationConfigurationResponse.h
  167. +32 −0 src/include/AutoScaling/AutoScalingDeleteNotificationConfigurationResponseUnmarshaller.h
  168. +49 −0 src/include/AutoScaling/AutoScalingDescribeAutoScalingNotificationTypesRequest.h
  169. +33 −0 src/include/AutoScaling/AutoScalingDescribeAutoScalingNotificationTypesRequestMarshaller.h
  170. +61 −0 src/include/AutoScaling/AutoScalingDescribeAutoScalingNotificationTypesResponse.h
  171. +39 −0 src/include/AutoScaling/AutoScalingDescribeAutoScalingNotificationTypesResponseUnmarshaller.h
  172. +1 −1  src/include/AutoScaling/AutoScalingDescribeLaunchConfigurationsRequest.h
  173. +74 −0 src/include/AutoScaling/AutoScalingDescribeNotificationConfigurationsRequest.h
  174. +33 −0 src/include/AutoScaling/AutoScalingDescribeNotificationConfigurationsRequestMarshaller.h
  175. +68 −0 src/include/AutoScaling/AutoScalingDescribeNotificationConfigurationsResponse.h
  176. +40 −0 src/include/AutoScaling/AutoScalingDescribeNotificationConfigurationsResponseUnmarshaller.h
  177. +78 −0 src/include/AutoScaling/AutoScalingNotificationConfiguration.h
  178. +38 −0 src/include/AutoScaling/AutoScalingNotificationConfigurationUnmarshaller.h
  179. +77 −0 src/include/AutoScaling/AutoScalingPutNotificationConfigurationRequest.h
  180. +33 −0 src/include/AutoScaling/AutoScalingPutNotificationConfigurationRequestMarshaller.h
  181. +31 −0 src/include/AutoScaling/AutoScalingPutNotificationConfigurationResponse.h
  182. +32 −0 src/include/AutoScaling/AutoScalingPutNotificationConfigurationResponseUnmarshaller.h
  183. +33 −2 src/include/AutoScaling/AutoScalingPutScheduledUpdateGroupActionRequest.h
  184. +1 −1  src/include/AutoScaling/AutoScalingPutScheduledUpdateGroupActionResponse.h
  185. +3 −2 src/include/AutoScaling/AutoScalingResumeProcessesRequest.h
  186. +23 −5 src/include/AutoScaling/AutoScalingScheduledUpdateGroupAction.h
  187. +3 −2 src/include/AutoScaling/AutoScalingSuspendProcessesRequest.h
  188. +1 −1  src/include/AutoScaling/AutoScalingUpdateAutoScalingGroupRequest.h
  189. +41 −24 src/include/CloudWatch/AmazonCloudWatchClient.h
  190. +1 −0  src/include/CloudWatch/CloudWatchGetMetricStatisticsRequestMarshaller.h
  191. +3 −0  src/include/CloudWatch/CloudWatchPutMetricAlarmRequestMarshaller.h
  192. +1 −1  src/include/CloudWatch/CloudWatchPutMetricDataRequestMarshaller.h
  193. +1 −0  src/include/EC2/EC2CreateTagsRequestMarshaller.h
  194. +1 −0  src/include/EC2/EC2DeleteTagsRequestMarshaller.h
  195. +2 −0  src/include/EC2/EC2DescribeAddressesRequestMarshaller.h
  196. +1 −0  src/include/EC2/EC2DescribeAvailabilityZonesRequestMarshaller.h
  197. +1 −0  src/include/EC2/EC2DescribeBundleTasksRequestMarshaller.h
  198. +3 −0  src/include/EC2/EC2DescribeImagesRequestMarshaller.h
  199. +1 −0  src/include/EC2/EC2DescribeInstancesRequestMarshaller.h
  200. +1 −0  src/include/EC2/EC2DescribeKeyPairsRequestMarshaller.h
  201. +1 −0  src/include/EC2/EC2DescribeLicensesRequestMarshaller.h
  202. +1 −0  src/include/EC2/EC2DescribePlacementGroupsRequestMarshaller.h
  203. +1 −0  src/include/EC2/EC2DescribeRegionsRequestMarshaller.h
  204. +1 −0  src/include/EC2/EC2DescribeReservedInstancesOfferingsRequestMarshaller.h
  205. +1 −0  src/include/EC2/EC2DescribeReservedInstancesRequestMarshaller.h
  206. +2 −0  src/include/EC2/EC2DescribeSecurityGroupsRequestMarshaller.h
  207. +3 −0  src/include/EC2/EC2DescribeSnapshotsRequestMarshaller.h
  208. +1 −0  src/include/EC2/EC2DescribeSpotInstanceRequestsRequestMarshaller.h
  209. +2 −0  src/include/EC2/EC2DescribeSpotPriceHistoryRequestMarshaller.h
  210. +1 −0  src/include/EC2/EC2DescribeVolumesRequestMarshaller.h
  211. +2 −0  src/include/EC2/EC2ModifyImageAttributeRequestMarshaller.h
  212. +2 −0  src/include/EC2/EC2ModifyInstanceAttributeRequestMarshaller.h
  213. +2 −0  src/include/EC2/EC2ModifySnapshotAttributeRequestMarshaller.h
  214. +4 −1 src/include/EC2/EC2RequestSpotInstancesRequestMarshaller.h
  215. +3 −1 src/include/EC2/EC2RunInstancesRequestMarshaller.h
  216. +3 −6 src/include/ElasticLoadBalancing/AmazonElasticLoadBalancingClient.h
  217. +1 −0  src/include/ElasticLoadBalancing/ElasticLoadBalancingCreateLoadBalancerRequestMarshaller.h
  218. +4 −5 src/include/ElasticLoadBalancing/ElasticLoadBalancingDescribeLoadBalancerPoliciesRequest.h
  219. +10 −11 src/include/ElasticLoadBalancing/ElasticLoadBalancingListener.h
  220. +18 −7 src/include/ElasticLoadBalancing/ElasticLoadBalancingPolicyAttribute.h
  221. +2 −2 src/include/ElasticLoadBalancing/ElasticLoadBalancingPolicyAttributeTypeDescription.h
  222. +1 −1  src/include/ElasticLoadBalancing/ElasticLoadBalancingSetLoadBalancerPoliciesForBackendServerRequest.h
  223. +0 −12 src/include/S3/AmazonS3Client.h
  224. +5 −0 src/include/S3/S3AbstractPutRequest.h
  225. +6 −1 src/include/S3/S3Constants.h
  226. +6 −1 src/include/S3/S3Response.h
  227. +4 −17 src/include/SES/AmazonSESClient.h
  228. +2 −1  src/include/SES/SESSendEmailRequest.h
  229. +1 −5 src/include/SES/SESSendRawEmailRequest.h
  230. +62 −21 src/include/SQS/AmazonSQSClient.h
  231. +17 −10 src/include/SQS/SQSAddPermissionRequest.h
  232. +4 −4 src/include/SQS/SQSChangeMessageVisibilityRequest.h
  233. +2 −12 src/include/SQS/SQSCreateQueueRequest.h
  234. +1 −1  src/include/SQS/SQSCreateQueueResponse.h
  235. +2 −2 src/include/SQS/SQSDeleteMessageRequest.h
  236. +2 −2 src/include/SQS/SQSDeleteQueueRequest.h
  237. +25 −3 src/include/SQS/SQSGetQueueAttributesRequest.h
  238. +1 −2  src/include/SQS/SQSListQueuesResponse.h
  239. +0 −2  src/include/SQS/SQSReceiptHandleIsInvalidException.h
  240. +4 −4 src/include/SQS/SQSReceiveMessageRequest.h
  241. +2 −2 src/include/SQS/SQSRemovePermissionRequest.h
  242. +2 −2 src/include/SQS/SQSSendMessageRequest.h
  243. +2 −2 src/include/SQS/SQSSetQueueAttributesRequest.h
  244. +1 −1  src/include/SimpleDB/SimpleDBDeleteAttributesRequestMarshaller.h
  245. +2 −1  src/include/SimpleDB/SimpleDBDomainMetadataResponse.h
  246. +1 −1  src/include/SimpleDB/SimpleDBPutAttributesRequestMarshaller.h
View
18 samples/AWSiOSDemoTVM/AWSiOSDemoTVM/Classes/TVMClient/RegisterDeviceRequest.m
@@ -18,21 +18,21 @@
@implementation RegisterDeviceRequest
--(id)initWithEndpoint:(NSString*)theEndpoint andUid:(NSString*)theUid andKey:(NSString*)theKey usingSSL:(bool)usingSSL
+-(id)initWithEndpoint:(NSString *)theEndpoint andUid:(NSString *)theUid andKey:(NSString *)theKey usingSSL:(bool)usingSSL
{
- if ( ( self = [super init] ) ) {
+ if ((self = [super init])) {
endpoint = [theEndpoint retain];
- uid = [theUid retain];
- key = [theKey retain];
- useSSL = usingSSL;
+ uid = [theUid retain];
+ key = [theKey retain];
+ useSSL = usingSSL;
}
-
- return self;
+
+ return self;
}
--(NSString*)buildRequestUrl
+-(NSString *)buildRequestUrl
{
- return [NSString stringWithFormat:( useSSL ? SSL_REGISTER_REQUEST : REGISTER_REQUEST ), endpoint, uid, key];
+ return [NSString stringWithFormat:(useSSL ? SSL_REGISTER_REQUEST:REGISTER_REQUEST), endpoint, uid, key];
}
-(void)dealloc
View
4 samples/AWSiOSDemoTVM/AWSiOSDemoTVM/Classes/TVMClient/ResponseHandler.h
@@ -16,9 +16,9 @@
#import <Foundation/Foundation.h>
#import "Response.h"
-@interface ResponseHandler : NSObject {
+@interface ResponseHandler:NSObject {
}
--(Response*)handleResponse:(int)responseCode body:(NSString*)responseBody;
+-(Response *)handleResponse:(int)responseCode body:(NSString *)responseBody;
@end
View
2  samples/AWSiOSDemoTVMIdentity/AWSiOSDemoTVMIdentity/Classes/Constants.h
@@ -26,7 +26,7 @@
/**
* This is the App Name you may have provided in the AWS Elastic Beanstalk
- * configuration. It was the value provided for PARAM1. If no value was
+ * configuration. It was the value provided for PARAM2. If no value was
* provided it should be defaulted to "MyMobileAppName".
*/
#define APP_NAME @"MyMobileAppName"
View
4 samples/AWSiOSDemoTVMIdentity/AWSiOSDemoTVMIdentity/Classes/TVMClient/ResponseHandler.h
@@ -16,9 +16,9 @@
#import <Foundation/Foundation.h>
#import "Response.h"
-@interface ResponseHandler : NSObject {
+@interface ResponseHandler:NSObject {
}
--(Response*)handleResponse:(int)responseCode body:(NSString*)responseBody;
+-(Response *)handleResponse:(int)responseCode body:(NSString *)responseBody;
@end
View
BIN  samples/S3Uploader/.DS_Store
Binary file not shown
View
17 samples/S3Uploader/README.html
@@ -0,0 +1,17 @@
+<html>
+<body>
+<h2>Running the S3Uploader Sample</h2>
+<p>This sample is a browser application that demonstrates how to make requests to Amazon S3 using the SDK.</p>
+<p>For a more detailed description of the code, please visit this <a href="S3Uploader.html">writeup</a>.
+<ol>
+ <li>Open the <code>AWSiOSSDK/samples/S3Uploader/S3Uploader.xcodeproj</code> project file in Xcode. </li>
+ <li>Configure the sample with your AWS security credentials:
+ <ol>
+ <li>Open the <code>Constants.h</code> file. </li>
+ <li>Modify the <code>ACCESS_KEY</code> and <code>SECRET_KEY</code> definitions with your AWS Credentials. </li>
+ </ol>
+ </li>
+ <li>Run the project.</li>
+</ol>
+</body>
+</html>
View
247 samples/S3Uploader/S3Uploader.html
@@ -0,0 +1,247 @@
+<html>
+<head>
+ <title>Mobile Photo Uploads to Amazon S3</title>
+ <style type="text/css">
+ table.sample {
+ border-width: 2px;
+ border-spacing: 5px;
+ border-style: dashed;
+ border-color: cornflowerblue;
+ }
+ table.sample td {
+ padding: 5px;
+ }
+ table.sample tr {
+ padding: 5px;
+ }
+ </style>
+</head>
+<body style="padding: 10px">
+ <h1>Mobile Photo Uploads to Amazon S3 using the AWS SDK for iOS and AWS SDK for Android.</h1>
+ <p>
+ This article demonstrates how to upload an image to <a href="http://aws.amazon.com/s3/">Amazon S3</a> from your mobile device and how
+ to make that image available on the web. Amazon S3 is storage for the Internet. It's a
+ simple storage service that offers software developers a highly-scalable, reliable, secure, fast, and inexpensive data storage. The article shows sample code for both the iOS and
+ Android platforms. The complete sample code and project files are included in the mobile SDKs for
+ these platforms. Links to the SDKs are available at the end of this article.
+ </p>
+
+ <p>
+ To use the AWS SDK for iOS or the AWS SDK for Android, you will need your AWS credentials, that is,
+ your Access Key ID and Secret Access Key. If you haven't already signed up for
+ <a href="http://aws.amazon.com/">Amazon Web Services</a>
+ (AWS), you will need to do that first to get your AWS credentials. You can sign up for AWS
+ <a href="https://aws-portal.amazon.com/gp/aws/developer/registration/index.html">here</a>.
+ <p>
+
+ <p>
+ Here's what the sample app looks like at start up on iOS and Android:
+ </p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <img src="http://media.amazonwebservices.com/iOS-Uploader.png" />
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <img src="http://media.amazonwebservices.com/Android-Uploader.png" />
+ </p>
+
+
+ <h2>Image Upload</h2>
+ <p>
+ The app uses each platform's "image picker" utility to have the end-user select an image for upload. The
+ app then creates an Amazon S3 client, uses the client to create an Amazon S3 bucket in which to store the
+ image, and finally uploads the image into the bucket. A bucket is a container for objects stored in Amazon
+ S3. Every object--such as an image--is contained within a bucket.
+ </p>
+
+ <h3>Get the image </h3>
+ <p>The first step is to retrieve the content, in this case an image, to be uploaded to Amazon S3. For this sample app, selecting an image from the device itself is an easy choice.</p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left">
+ <pre>
+UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
+imagePicker.delegate = self;
+[self presentModalViewController:imagePicker animated:YES];</pre></td></tr>
+ </table>
+ </p>
+ <p style="padding-left:2cm;">
+ <img src="http://media.amazonwebservices.com/iOS-Image-Picker.png"/>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>
+Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+intent.setType("image/*");
+startActivityForResult(intent, PHOTO_SELECTED);</pre></td></tr>
+ </table>
+ </p>
+ <p style="padding-left:2cm;">
+ <img src="http://media.amazonwebservices.com/Android-Image-Picker.png"/>
+ </p>
+ <p>On both platforms, once an image is selected, a callback method is invoked with the selected image's information. The app uses this information to complete the upload. </p>
+ <h3>Upload the image</h3>
+ <p>Once we have the image, we can attempt to upload it to Amazon S3.</p>
+ <p><b>First</b>, create an Amazon S3 client to communicate with the service.</p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>
+AmazonS3Client *s3 = [[[AmazonS3Client alloc] initWithAccessKey:MY_ACCESS_KEY_ID withSecretKey:MY_SECRET_KEY] autorelease];</pre></td></tr>
+ </table>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>
+AmazonS3Client s3Client = new AmazonS3Client( new BasicAWSCredentials( MY_ACCESS_KEY_ID, MY_SECRET_KEY ) );
+</pre></td></tr>
+ </table>
+ </p>
+
+
+ <p><b>Second</b>, create an S3 bucket to store the picture. </p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>[s3 createBucket:[[[S3CreateBucketRequest alloc] initWithName:MY_PICTURE_BUCKET] autorelease]];</pre></td></tr>
+ </table>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>s3Client.createBucket( MY_PICTURE_BUCKET );<pre></td></tr>
+ </table>
+ </p>
+
+
+ <p><b>Finally</b>, put the image object into the S3 bucket.</p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>S3PutObjectRequest *por = [[[S3PutObjectRequest alloc] initWithKey:MY_PICTURE_NAME inBucket:MY_PICTURE_BUCKET] autorelease];
+por.contentType = @"image/jpeg";
+por.data = imageData;
+[s3 putObject:por];</pre></td></tr>
+ </table>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>PutObjectRequest por = new PutObjectRequest( Constants.getPictureBucket(), Constants.PICTURE_NAME, new java.io.File( filePath) );
+s3Client.putObject( por );</pre></td></tr>
+ </table>
+ </p>
+
+
+ <h2>Browser Display</h2>
+ <p>The app makes the image available for viewing in a browser by generating a pre-signed URL.
+ A pre-signed URL is a URL for an Amazon S3 resource that is signed with current AWS security
+ credentials. The pre-signed URL can then be shared with other users, allowing them to access
+ resources without providing an account's AWS security credentials.</p>
+
+ <p><b>First</b>, create an override content type to ensure that the "content" will be treated as an image by the browser.</p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>S3ResponseHeaderOverrides *override = [[[S3ResponseHeaderOverrides alloc] init] autorelease];
+override.contentType = @"image/jpeg";</pre></td></tr>
+ </table>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>ResponseHeaderOverrides override = new ResponseHeaderOverrides();
+override.setContentType( "image/jpeg" );</pre></td></tr>
+ </table>
+ </p>
+
+
+ <p><b>Second</b>, create the pre-signed URL request. Pre-signed URLs can be created with an expiration date,
+ that is, a date and time after which the resource will no longer be available. In the sample, the pre-signed URLs are valid for only one hour.</p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>S3GetPreSignedURLRequest *gpsur = [[[S3GetPreSignedURLRequest alloc] init] autorelease];
+gpsur.key = PICTURE_NAME;
+gpsur.bucket = [Constants pictureBucket];
+gpsur.expires = [NSDate dateWithTimeIntervalSinceNow:(NSTimeInterval) 3600]; // Added an hour's worth of seconds to the current time.
+gpsur.responseHeaderOverrides = override;</pre></td></tr>
+ </table>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest( Constants.getPictureBucket(), Constants.PICTURE_NAME );
+urlRequest.setExpiration( new Date( System.currentTimeMillis() + 3600000 ) ); // Added an hour's worth of milliseconds to the current time.
+urlRequest.setResponseHeaders( override );</pre></td></tr>
+ </table>
+ </p>
+
+
+
+ <p><b>Third</b>, generate the pre-signed URL. </p>
+ <ul><li>iOS</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>NSURL *url = [s3 getPreSignedURL:gpsur];</pre></td></tr>
+ </table>
+ </p>
+ <ul><li>Android</li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>URL url = s3Client.generatePresignedUrl( urlRequest );</pre></td></tr>
+ </table>
+ </p>
+
+
+
+ <p><b>Finally</b>, launch the browser to view the pre-signed URL which will display the image. </p>
+ <ul><li><a href="http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/UIApplication/openURL">iOS</a></li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>[[UIApplication sharedApplication] openURL:url];</pre></td></tr>
+ </table>
+ </p>
+ <p style="padding-left:2cm;">
+ <img src="http://media.amazonwebservices.com/iOS-ShowPic.png"/>
+ </p>
+
+ <ul><li><a href="http://developer.android.com/guide/appendix/g-app-intents.html">Android</a></li></ul>
+ <p style="padding-left:2cm;">
+ <table class="sample"><tr><td align="left" >
+ <pre>startActivity( new Intent( Intent.ACTION_VIEW, Uri.parse( url.toURI().toString() ) ) );</pre></td></tr>
+ </table>
+ </p>
+ <p style="padding-left:2cm;">
+ <img src="http://media.amazonwebservices.com/Android-ShowPic.png"/>
+ </p>
+
+
+ <h2>Next Steps</h2>
+ <p>These few lines of code demonstrate how Amazon S3 could become a limitless storage device for your mobile
+ photos. A photo sharing app that allows users to view photos from other users would not be a difficult
+ extension to the above code. Also, the content that is uploaded and shared is not limited to images. The
+ content could be audio files, video files, text, or other content that users want to store and share. </p>
+
+ <h2>References</h2>
+ <p>A sample app that includes this code is provided with both mobile SDKs. The download links can be found here:</p>
+
+ <ul>
+ <li><a href="http://aws.amazon.com/sdkforios">AWS SDK for iOS</a></li>
+ <li><a href="http://aws.amazon.com/sdkforandroid">AWS SDK for Android</a></li>
+ </ul>
+
+ <p>For more information about using AWS credentials with mobile applications see the following article:</p>
+ <ul>
+ <li><a href="http://aws.amazon.com/articles/SDKs/Android/4611615499399490">Authenticating Users of AWS Mobile Applications with a Token Vending Machine</a></li>
+ </ul>
+
+ <h2>Questions?</h2>
+ <p>Please feel free to ask questions or make comments in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=88">Mobile Development Forum</a>.</p>
+
+
+</body>
+</html>
View
302 samples/S3Uploader/S3Uploader.xcodeproj/project.pbxproj
@@ -0,0 +1,302 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D00F6B9E141FEA1800A058E8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00F6B9D141FEA1800A058E8 /* UIKit.framework */; };
+ D00F6BA0141FEA1800A058E8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00F6B9F141FEA1800A058E8 /* Foundation.framework */; };
+ D00F6BA2141FEA1800A058E8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00F6BA1141FEA1800A058E8 /* CoreGraphics.framework */; };
+ D00F6BA8141FEA1800A058E8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D00F6BA6141FEA1800A058E8 /* InfoPlist.strings */; };
+ D00F6BAB141FEA1800A058E8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D00F6BAA141FEA1800A058E8 /* main.m */; };
+ D00F6BAE141FEA1800A058E8 /* S3UploaderAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D00F6BAD141FEA1800A058E8 /* S3UploaderAppDelegate.m */; };
+ D00F6BB1141FEA1800A058E8 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = D00F6BAF141FEA1800A058E8 /* MainWindow.xib */; };
+ D00F6BB4141FEA1800A058E8 /* S3UploaderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D00F6BB3141FEA1800A058E8 /* S3UploaderViewController.m */; };
+ D00F6BB7141FEA1800A058E8 /* S3UploaderViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D00F6BB5141FEA1800A058E8 /* S3UploaderViewController.xib */; };
+ D00F6BC8141FF06500A058E8 /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = D00F6BC7141FF06400A058E8 /* Constants.m */; };
+ D073ECA8143F7EC300479840 /* AWSiOSSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D073ECA7143F7EC300479840 /* AWSiOSSDK.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D00F6B99141FEA1800A058E8 /* S3Uploader.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = S3Uploader.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ D00F6B9D141FEA1800A058E8 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D00F6B9F141FEA1800A058E8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D00F6BA1141FEA1800A058E8 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ D00F6BA5141FEA1800A058E8 /* S3Uploader-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "S3Uploader-Info.plist"; sourceTree = "<group>"; };
+ D00F6BA7141FEA1800A058E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ D00F6BA9141FEA1800A058E8 /* S3Uploader-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "S3Uploader-Prefix.pch"; sourceTree = "<group>"; };
+ D00F6BAA141FEA1800A058E8 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ D00F6BAC141FEA1800A058E8 /* S3UploaderAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3UploaderAppDelegate.h; sourceTree = "<group>"; };
+ D00F6BAD141FEA1800A058E8 /* S3UploaderAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = S3UploaderAppDelegate.m; sourceTree = "<group>"; };
+ D00F6BB0141FEA1800A058E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = "<group>"; };
+ D00F6BB2141FEA1800A058E8 /* S3UploaderViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3UploaderViewController.h; sourceTree = "<group>"; };
+ D00F6BB3141FEA1800A058E8 /* S3UploaderViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = S3UploaderViewController.m; sourceTree = "<group>"; };
+ D00F6BB6141FEA1800A058E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/S3UploaderViewController.xib; sourceTree = "<group>"; };
+ D00F6BC5141FECC300A058E8 /* Constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
+ D00F6BC7141FF06400A058E8 /* Constants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Constants.m; sourceTree = "<group>"; };
+ D073ECA7143F7EC300479840 /* AWSiOSSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AWSiOSSDK.framework; path = ../../AWSiOSSDK.framework; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D00F6B96141FEA1800A058E8 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D00F6B9E141FEA1800A058E8 /* UIKit.framework in Frameworks */,
+ D00F6BA0141FEA1800A058E8 /* Foundation.framework in Frameworks */,
+ D00F6BA2141FEA1800A058E8 /* CoreGraphics.framework in Frameworks */,
+ D073ECA8143F7EC300479840 /* AWSiOSSDK.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D00F6B8E141FEA1800A058E8 = {
+ isa = PBXGroup;
+ children = (
+ D00F6BA3141FEA1800A058E8 /* S3Uploader */,
+ D00F6B9C141FEA1800A058E8 /* Frameworks */,
+ D00F6B9A141FEA1800A058E8 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ D00F6B9A141FEA1800A058E8 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D00F6B99141FEA1800A058E8 /* S3Uploader.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ D00F6B9C141FEA1800A058E8 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D073ECA7143F7EC300479840 /* AWSiOSSDK.framework */,
+ D00F6B9D141FEA1800A058E8 /* UIKit.framework */,
+ D00F6B9F141FEA1800A058E8 /* Foundation.framework */,
+ D00F6BA1141FEA1800A058E8 /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ D00F6BA3141FEA1800A058E8 /* S3Uploader */ = {
+ isa = PBXGroup;
+ children = (
+ D00F6BC7141FF06400A058E8 /* Constants.m */,
+ D00F6BC5141FECC300A058E8 /* Constants.h */,
+ D00F6BAC141FEA1800A058E8 /* S3UploaderAppDelegate.h */,
+ D00F6BAD141FEA1800A058E8 /* S3UploaderAppDelegate.m */,
+ D00F6BAF141FEA1800A058E8 /* MainWindow.xib */,
+ D00F6BB2141FEA1800A058E8 /* S3UploaderViewController.h */,
+ D00F6BB3141FEA1800A058E8 /* S3UploaderViewController.m */,
+ D00F6BB5141FEA1800A058E8 /* S3UploaderViewController.xib */,
+ D00F6BA4141FEA1800A058E8 /* Supporting Files */,
+ );
+ path = S3Uploader;
+ sourceTree = "<group>";
+ };
+ D00F6BA4141FEA1800A058E8 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ D00F6BA5141FEA1800A058E8 /* S3Uploader-Info.plist */,
+ D00F6BA6141FEA1800A058E8 /* InfoPlist.strings */,
+ D00F6BA9141FEA1800A058E8 /* S3Uploader-Prefix.pch */,
+ D00F6BAA141FEA1800A058E8 /* main.m */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ D00F6B98141FEA1800A058E8 /* S3Uploader */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D00F6BBA141FEA1800A058E8 /* Build configuration list for PBXNativeTarget "S3Uploader" */;
+ buildPhases = (
+ D00F6B95141FEA1800A058E8 /* Sources */,
+ D00F6B96141FEA1800A058E8 /* Frameworks */,
+ D00F6B97141FEA1800A058E8 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = S3Uploader;
+ productName = S3Uploader;
+ productReference = D00F6B99141FEA1800A058E8 /* S3Uploader.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D00F6B90141FEA1800A058E8 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = D00F6B93141FEA1800A058E8 /* Build configuration list for PBXProject "S3Uploader" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D00F6B8E141FEA1800A058E8;
+ productRefGroup = D00F6B9A141FEA1800A058E8 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D00F6B98141FEA1800A058E8 /* S3Uploader */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D00F6B97141FEA1800A058E8 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D00F6BA8141FEA1800A058E8 /* InfoPlist.strings in Resources */,
+ D00F6BB1141FEA1800A058E8 /* MainWindow.xib in Resources */,
+ D00F6BB7141FEA1800A058E8 /* S3UploaderViewController.xib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D00F6B95141FEA1800A058E8 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D00F6BAB141FEA1800A058E8 /* main.m in Sources */,
+ D00F6BAE141FEA1800A058E8 /* S3UploaderAppDelegate.m in Sources */,
+ D00F6BB4141FEA1800A058E8 /* S3UploaderViewController.m in Sources */,
+ D00F6BC8141FF06500A058E8 /* Constants.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ D00F6BA6141FEA1800A058E8 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ D00F6BA7141FEA1800A058E8 /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ D00F6BAF141FEA1800A058E8 /* MainWindow.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ D00F6BB0141FEA1800A058E8 /* en */,
+ );
+ name = MainWindow.xib;
+ sourceTree = "<group>";
+ };
+ D00F6BB5141FEA1800A058E8 /* S3UploaderViewController.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ D00F6BB6141FEA1800A058E8 /* en */,
+ );
+ name = S3UploaderViewController.xib;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ D00F6BB8141FEA1800A058E8 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ D00F6BB9141FEA1800A058E8 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ };
+ name = Release;
+ };
+ D00F6BBB141FEA1800A058E8 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/../..\"",
+ );
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "S3Uploader/S3Uploader-Prefix.pch";
+ INFOPLIST_FILE = "S3Uploader/S3Uploader-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ D00F6BBC141FEA1800A058E8 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/../..\"",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "S3Uploader/S3Uploader-Prefix.pch";
+ INFOPLIST_FILE = "S3Uploader/S3Uploader-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ VALIDATE_PRODUCT = YES;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ D00F6B93141FEA1800A058E8 /* Build configuration list for PBXProject "S3Uploader" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D00F6BB8141FEA1800A058E8 /* Debug */,
+ D00F6BB9141FEA1800A058E8 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D00F6BBA141FEA1800A058E8 /* Build configuration list for PBXNativeTarget "S3Uploader" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D00F6BBB141FEA1800A058E8 /* Debug */,
+ D00F6BBC141FEA1800A058E8 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D00F6B90141FEA1800A058E8 /* Project object */;
+}
View
7 samples/S3Uploader/S3Uploader.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:S3Uploader.xcodeproj">
+ </FileRef>
+</Workspace>
View
BIN  samples/S3Uploader/S3Uploader/.DS_Store
Binary file not shown
View
42 samples/S3Uploader/S3Uploader/Constants.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+
+// Constants used to represent your AWS Credentials.
+#define ACCESS_KEY_ID @"CHANGE ME"
+#define SECRET_KEY @"CHANGE ME"
+
+
+// Constants for the Bucket and Object name.
+#define PICTURE_BUCKET @"picture-bucket"
+#define PICTURE_NAME @"NameOfThePicture"
+
+
+@interface Constants:NSObject {
+}
+
+/**
+ * Utility method to create a bucket name using the Access Key Id. This will help ensure uniqueness.
+ */
++(NSString*)pictureBucket;
+
+
+/**
+ * Utility method to display an alert message. Used to communicate errors and failures.
+ */
++(void)showAlertMessage:(NSString*)message withTitle:(NSString*)title;
+
+
+@end
View
33 samples/S3Uploader/S3Uploader/Constants.m
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+#import "Constants.h"
+
+@implementation Constants
+
+
++(NSString*)pictureBucket
+{
+ return [[NSString stringWithFormat:@"my-unique-name-%@%@", ACCESS_KEY_ID, PICTURE_BUCKET] lowercaseString];
+}
+
++(void)showAlertMessage:(NSString*)message withTitle:(NSString*)title
+{
+ [[[[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease] show];
+}
+
+
+@end
+
View
38 samples/S3Uploader/S3Uploader/S3Uploader-Info.plist
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.amazon.aws.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>NSMainNibFile</key>
+ <string>MainWindow</string>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
View
14 samples/S3Uploader/S3Uploader/S3Uploader-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'S3Uploader' target in the 'S3Uploader' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iPhone SDK 3.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import <UIKit/UIKit.h>
+ #import <Foundation/Foundation.h>
+#endif
View
28 samples/S3Uploader/S3Uploader/S3UploaderAppDelegate.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+#import <UIKit/UIKit.h>
+
+@class S3UploaderViewController;
+
+@interface S3UploaderAppDelegate : NSObject <UIApplicationDelegate> {
+
+}
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+
+@property (nonatomic, retain) IBOutlet S3UploaderViewController *viewController;
+
+@end
View
82 samples/S3Uploader/S3Uploader/S3UploaderAppDelegate.m
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+#import "S3UploaderAppDelegate.h"
+
+#import "S3UploaderViewController.h"
+
+@implementation S3UploaderAppDelegate
+
+
+@synthesize window=_window;
+
+@synthesize viewController=_viewController;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ // Override point for customization after application launch.
+
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ /*
+ Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+ */
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ /*
+ Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+ */
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ /*
+ Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+ */
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ /*
+ Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+ */
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ /*
+ Called when the application is about to terminate.
+ Save data if appropriate.
+ See also applicationDidEnterBackground:.
+ */
+}
+
+- (void)dealloc
+{
+ [_window release];
+ [_viewController release];
+ [super dealloc];
+}
+
+@end
View
25 samples/S3Uploader/S3Uploader/S3UploaderViewController.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+#import <UIKit/UIKit.h>
+
+@interface S3UploaderViewController : UIViewController<UINavigationControllerDelegate,UIImagePickerControllerDelegate> {
+
+}
+
+-(IBAction)selectPhoto:(id)sender;
+-(IBAction)showInBrowser:(id)sender;
+
+@end
View
94 samples/S3Uploader/S3Uploader/S3UploaderViewController.m
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+#import "S3UploaderViewController.h"
+
+#import "Constants.h"
+#import <AWSiOSSDK/S3/AmazonS3Client.h>
+
+
+@implementation S3UploaderViewController
+
+-(IBAction)selectPhoto:(id)sender
+{
+ UIImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease];
+ imagePicker.delegate = self;
+ [self presentModalViewController:imagePicker animated:YES];
+}
+
+-(IBAction)showInBrowser:(id)sender
+{
+ // Initial the S3 Client.
+ AmazonS3Client *s3 = [[[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY] autorelease];
+
+ @try {
+ // Set the content type so that the browser will treat the URL as an image.
+ S3ResponseHeaderOverrides *override = [[[S3ResponseHeaderOverrides alloc] init] autorelease];
+ override.contentType = @"image/jpeg";
+
+ // Request a pre-signed URL to picture that has been uplaoded.
+ S3GetPreSignedURLRequest *gpsur = [[[S3GetPreSignedURLRequest alloc] init] autorelease];
+ gpsur.key = PICTURE_NAME;
+ gpsur.bucket = [Constants pictureBucket];
+ gpsur.expires = [NSDate dateWithTimeIntervalSinceNow:(NSTimeInterval) 3600]; // Added an hour's worth of seconds to the current time.
+ gpsur.responseHeaderOverrides = override;
+
+ // Get the URL
+ NSURL *url = [s3 getPreSignedURL:gpsur];
+
+ // Display the URL in Safari
+ [[UIApplication sharedApplication] openURL:url];
+ }
+ @catch (AmazonClientException *exception) {
+ [Constants showAlertMessage:exception.message withTitle:@"Browser Error"];
+ }
+
+}
+
+-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
+{
+ // Get the selected image.
+ UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
+
+ // Convert the image to JPEG data.
+ NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
+
+ // Initial the S3 Client.
+ AmazonS3Client *s3 = [[[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY] autorelease];
+ @try {
+ // Create the picture bucket.
+ [s3 createBucket:[[[S3CreateBucketRequest alloc] initWithName:[Constants pictureBucket]] autorelease]];
+
+ // Upload image data. Remember to set the content type.
+ S3PutObjectRequest *por = [[[S3PutObjectRequest alloc] initWithKey:PICTURE_NAME inBucket:[Constants pictureBucket]] autorelease];
+ por.contentType = @"image/jpeg";
+ por.data = imageData;
+
+ // Put the image data into the specified s3 bucket and object.
+ [s3 putObject:por];
+ }
+ @catch (AmazonClientException *exception) {
+ [Constants showAlertMessage:exception.message withTitle:@"Upload Error"];
+ }
+
+ [picker dismissModalViewControllerAnimated:YES];
+}
+
+-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
+{
+ [picker dismissModalViewControllerAnimated:YES];
+}
+
+@end
View
2  samples/S3Uploader/S3Uploader/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
View
444 samples/S3Uploader/S3Uploader/en.lproj/MainWindow.xib
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10D571</string>
+ <string key="IBDocument.InterfaceBuilderVersion">786</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">460.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">112</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="10"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="427554174">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUICustomObject" id="664661524">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIViewController" id="943309135">
+ <string key="IBUINibName">S3UploaderViewController</string>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">1</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIHorizontal">NO</bool>
+ </object>
+ <object class="IBUIWindow" id="117978783">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrameSize">{320, 480}</string>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIResizesToFullScreen">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="664661524"/>
+ </object>
+ <int key="connectionID">4</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">viewController</string>
+ <reference key="source" ref="664661524"/>
+ <reference key="destination" ref="943309135"/>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="664661524"/>
+ <reference key="destination" ref="117978783"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">3</int>
+ <reference key="object" ref="664661524"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">S3Uploader App Delegate</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="427554174"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="943309135"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="117978783"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>10.CustomClassName</string>
+ <string>10.IBEditorWindowLastContentRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>12.IBEditorWindowLastContentRect</string>
+ <string>12.IBPluginDependency</string>
+ <string>3.CustomClassName</string>
+ <string>3.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UIApplication</string>
+ <string>UIResponder</string>
+ <string>S3UploaderViewController</string>
+ <string>{{234, 376}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{525, 346}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>S3UploaderAppDelegate</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">15</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWindow</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">S3UploaderAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewController</string>
+ <string>window</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>S3UploaderViewController</string>
+ <string>UIWindow</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewController</string>
+ <string>window</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">viewController</string>
+ <string key="candidateClassName">S3UploaderViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">window</string>
+ <string key="candidateClassName">UIWindow</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">S3UploaderAppDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">S3UploaderAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">S3UploaderViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">S3UploaderViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="356479594">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIApplication</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="356479594"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWindow</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">S3Uploader.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">112</string>
+ </data>
+</archive>
View
308 samples/S3Uploader/S3Uploader/en.lproj/S3UploaderViewController.xib
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K540</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1306</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">301</string>
+ </object>
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBUIButton</string>
+ <string>IBUIView</string>
+ <string>IBUILabel</string>
+ <string>IBProxyObject</string>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="843779117">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="774585933">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUILabel" id="312610082">
+ <reference key="NSNextResponder" ref="774585933"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 20}, {280, 34}}</string>
+ <reference key="NSSuperview" ref="774585933"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">S3 Uploader</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">24</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUIButton" id="987523084">
+ <reference key="NSNextResponder" ref="774585933"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 62}, {280, 37}}</string>
+ <reference key="NSSuperview" ref="774585933"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="363626780">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Select Picture</string>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="14883705">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="520138826">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ </object>
+ <object class="IBUIButton" id="148180504">
+ <reference key="NSNextResponder" ref="774585933"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 107}, {280, 37}}</string>
+ <reference key="NSSuperview" ref="774585933"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="363626780"/>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Show in Browser</string>
+ <reference key="IBUIHighlightedTitleColor" ref="14883705"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="520138826"/>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 20}, {320, 460}}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC43NQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="774585933"/>
+ </object>
+ <int key="connectionID">7</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">selectPhoto:</string>
+ <reference key="source" ref="987523084"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">19</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">showInBrowser:</string>
+ <reference key="source" ref="148180504"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="843779117"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="774585933"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="312610082"/>
+ <reference ref="987523084"/>
+ <reference ref="148180504"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="312610082"/>
+ <reference key="parent" ref="774585933"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="148180504"/>
+ <reference key="parent" ref="774585933"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="987523084"/>
+ <reference key="parent" ref="774585933"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>13.IBPluginDependency</string>
+ <string>16.IBPluginDependency</string>
+ <string>6.IBEditorWindowLastContentRect</string>
+ <string>6.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>S3UploaderViewController</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{239, 654}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">20</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">S3UploaderViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>selectPhoto:</string>
+ <string>showInBrowser:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">