Class | Fog::Storage::AWS::Real

In:

lib/fog/aws/requests/storage/get_object_torrent.rb
lib/fog/aws/requests/storage/complete_multipart_upload.rb
lib/fog/aws/requests/storage/get_object.rb
lib/fog/aws/requests/storage/copy_object.rb
lib/fog/aws/requests/storage/get_request_payment.rb
lib/fog/aws/requests/storage/head_object.rb
lib/fog/aws/requests/storage/delete_bucket.rb
lib/fog/aws/requests/storage/put_bucket_website.rb
lib/fog/aws/requests/storage/get_bucket_location.rb
lib/fog/aws/requests/storage/put_bucket_lifecycle.rb
lib/fog/aws/requests/storage/get_service.rb
lib/fog/aws/requests/storage/get_bucket_website.rb
lib/fog/aws/requests/storage/delete_object.rb
lib/fog/aws/requests/storage/post_object_hidden_fields.rb
lib/fog/aws/requests/storage/put_object_url.rb
lib/fog/aws/requests/storage/get_bucket.rb
lib/fog/aws/requests/storage/get_bucket_cors.rb
lib/fog/aws/requests/storage/get_bucket_acl.rb
lib/fog/aws/requests/storage/list_multipart_uploads.rb
lib/fog/aws/requests/storage/delete_bucket_cors.rb
lib/fog/aws/requests/storage/put_bucket_versioning.rb
lib/fog/aws/requests/storage/list_parts.rb
lib/fog/aws/requests/storage/put_bucket_policy.rb
lib/fog/aws/requests/storage/get_object_acl.rb
lib/fog/aws/requests/storage/get_bucket_lifecycle.rb
lib/fog/aws/requests/storage/put_bucket_logging.rb
lib/fog/aws/requests/storage/get_object_http_url.rb
lib/fog/aws/requests/storage/delete_bucket_website.rb
lib/fog/aws/requests/storage/get_object_https_url.rb
lib/fog/aws/requests/storage/put_bucket_cors.rb
lib/fog/aws/requests/storage/upload_part.rb
lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb
lib/fog/aws/requests/storage/initiate_multipart_upload.rb
lib/fog/aws/requests/storage/sync_clock.rb
lib/fog/aws/requests/storage/put_object.rb
lib/fog/aws/requests/storage/delete_bucket_policy.rb
lib/fog/aws/requests/storage/put_request_payment.rb
lib/fog/aws/requests/storage/abort_multipart_upload.rb
lib/fog/aws/requests/storage/get_object_url.rb
lib/fog/aws/requests/storage/put_bucket.rb
lib/fog/aws/requests/storage/get_bucket_object_versions.rb
lib/fog/aws/requests/storage/put_bucket_acl.rb
lib/fog/aws/requests/storage/get_bucket_policy.rb
lib/fog/aws/requests/storage/delete_multiple_objects.rb
lib/fog/aws/requests/storage/get_bucket_logging.rb
lib/fog/aws/requests/storage/get_bucket_versioning.rb
lib/fog/aws/requests/storage/put_object_acl.rb
lib/fog/aws/storage.rb

Parent: | Object

### Methods

abort_multipart_upload complete_multipart_upload copy_object delete_bucket delete_bucket_cors delete_bucket_lifecycle delete_bucket_policy delete_bucket_website delete_multiple_objects delete_object get_bucket get_bucket_acl get_bucket_cors get_bucket_lifecycle get_bucket_location get_bucket_logging get_bucket_object_versions get_bucket_policy get_bucket_versioning get_bucket_website get_object get_object_acl get_object_torrent get_request_payment get_service head_object initiate_multipart_upload list_multipart_uploads list_parts new post_object_hidden_fields put_bucket put_bucket_acl put_bucket_cors put_bucket_lifecycle put_bucket_logging put_bucket_policy put_bucket_versioning put_bucket_website put_object put_object_acl put_request_payment reload signature sync_clock upload_part

### Included Modules

PutObjectUrl GetObjectHttpUrl GetObjectHttpsUrl GetObjectUrl Utils Fog::AWS::CredentialFetcher::ConnectionMethods

### Public Class methods

new(options={})

Initialize connection to S3

#### Notes

options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection

#### Examples

      s3 = Fog::Storage.new(
        :provider => "AWS",
        :aws_access_key_id => your_aws_access_key_id,
        :aws_secret_access_key => your_aws_secret_access_key
      )

#### Parameters

- options<~Hash> - config arguments for connection. Defaults to {}.

#### Returns

- S3 object with connection to aws.

### Public Instance methods

abort_multipart_upload(bucket_name, object_name, upload_id)

Abort a multipart upload

@param [String] bucket_name Name of bucket to abort multipart upload on @param [String] object_name Name of object to abort multipart upload on @param [String] upload_id Id of upload to add part to

@see docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html

complete_multipart_upload(bucket_name, object_name, upload_id, parts)

Complete a multipart upload

@param [String] bucket_name Name of bucket to complete multipart upload for @param [String] object_name Name of object to complete multipart upload for @param [String] upload_id Id of upload to add part to @param [Array<String>] parts Array of etags as Strings for parts

@return [Excon::Response]

      * headers [Hash]:
        * Bucket [String] - bucket of new object
        * ETag [String] - etag of new object (will be needed to complete upload)
        * Key [String] - key of new object
        * Location [String] - location of new object

@see docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html

copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})

Copy an object from one S3 bucket to another

@param source_bucket_name [String] Name of source bucket @param source_object_name [String] Name of source object @param target_bucket_name [String] Name of bucket to create copy in @param target_object_name [String] Name for new copy of object

@param options [Hash]: @option options [String] x-amz-metadata-directive Specifies whether to copy metadata from source or replace with data in request. Must be in [‘COPY’, ‘REPLACE’] @option options [String] x-amz-copy_source-if-match Copies object if its etag matches this value @option options [Time] x-amz-copy_source-if-modified_since Copies object it it has been modified since this time @option options [String] x-amz-copy_source-if-none-match Copies object if its etag does not match this value @option options [Time] x-amz-copy_source-if-unmodified-since Copies object it it has not been modified since this time @option options [String] x-amz-storage-class Default is ‘STANDARD’, set to ‘REDUCED_REDUNDANCY’ for non-critical, reproducable data

@return [Excon::Response]

      * body [Hash]:
        * ETag [String] - etag of new object
        * LastModified [Time] - date object was last modified

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html

delete_bucket(bucket_name)

Delete an S3 bucket

@param bucket_name [String] name of bucket to delete

@return [Excon::Response] response:

      * status [Integer] - 204

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html

delete_bucket_cors(bucket_name)

Deletes the cors configuration information set for the bucket.

@param bucket_name [String] name of bucket to delete cors rules from

@return [Excon::Response] response:

      * status [Integer] - 204

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html

delete_bucket_lifecycle(bucket_name)

Delete lifecycle configuration for a bucket

@param bucket_name [String] name of bucket to delete lifecycle configuration from

@return [Excon::Response] response:

      * status [Integer] - 204

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html

delete_bucket_policy(bucket_name)

Delete policy for a bucket

@param bucket_name [String] name of bucket to delete policy from

@return [Excon::Response] response:

      * status [Integer] - 204

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html

delete_bucket_website(bucket_name)

Delete website configuration for a bucket

@param bucket_name [String] name of bucket to delete website configuration from

@return [Excon::Response] response:

      * status [Integer] - 204

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html

delete_multiple_objects(bucket_name, object_names, options = {})

Delete multiple objects from S3 @note For versioned deletes, options should include a version_ids hash, which

        maps from filename to an array of versions.
        The semantics are that for each (object_name, version) tuple, the
        caller must insert the object_name and an associated version (if
        desired), so for n versions, the object must be inserted n times.

@param bucket_name [String] Name of bucket containing object to delete @param object_names [Array] Array of object names to delete

@return [Excon::Response] response:

      * body [Hash]:
        * DeleteResult [Array]:
          * Deleted [Hash]:
            * Key [String] - Name of the object that was deleted
            * VersionId [String] - ID for the versioned onject in case of a versioned delete
            * DeleteMarker [Boolean] - Indicates if the request accessed a delete marker
            * DeleteMarkerVersionId [String] - Version ID of the delete marker accessed
          * Error [Hash]:
            * Key [String] - Name of the object that failed to be deleted
            * VersionId [String] - ID of the versioned object that was attempted to be deleted
            * Code [String] - Status code for the result of the failed delete
            * Message [String] - Error description

@see docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html

delete_object(bucket_name, object_name, options = {})

Delete an object from S3

@param bucket_name [String] Name of bucket containing object to delete @param object_name [String] Name of object to delete

@return [Excon::Response] response:

      * status [Integer] - 204

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html

get_bucket(bucket_name, options = {})

List information about objects in an S3 bucket

@param bucket_name [String] name of bucket to list object keys from @param options [Hash] config arguments for list. Defaults to {}. @option options delimiter [String] causes keys with the same string between the prefix

        value and the first occurence of delimiter to be rolled up

@option options marker [String] limits object keys to only those that appear

        lexicographically after its value.

@option options max-keys [Integer] limits number of object keys returned @option options prefix [String] limits object keys to those beginning with its value.

@return [Excon::Response] response:

      * body [Hash]:
        * Delimeter [String] - Delimiter specified for query
        * IsTruncated [Boolean] - Whether or not the listing is truncated
        * Marker [String]- Marker specified for query
        * MaxKeys [Integer] - Maximum number of keys specified for query
        * Name [String] - Name of the bucket
        * Prefix [String] - Prefix specified for query
        * CommonPrefixes [Array] - Array of strings for common prefixes
        * Contents [Array]:
          * ETag [String] - Etag of object
          * Key [String] - Name of object
          * LastModified [String] - Timestamp of last modification of object
          * Owner [Hash]:
            * DisplayName [String] - Display name of object owner
            * ID [String] - Id of object owner
          * Size [Integer] - Size of object
          * StorageClass [String] - Storage class of object

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html

get_bucket_acl(bucket_name)

Get access control list for an S3 bucket

@param bucket_name [String] name of bucket to get access control list for

@return [Excon::Response] response:

      * body [Hash]:
        * AccessControlPolicy [Hash]:
          * Owner [Hash]:
            * DisplayName [String] - Display name of object owner
            * ID [String] - Id of object owner
          * AccessControlList [Array]:
            * Grant [Hash]:
              * Grantee [Hash]:
                * DisplayName [String] - Display name of grantee
                * ID [String] - Id of grantee
                or
                * URI [String] - URI of group to grant access for
              * Permission [String] - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html

get_bucket_cors(bucket_name)

Gets the CORS configuration for an S3 bucket

@param bucket_name [String] name of bucket to get access control list for

@return [Excon::Response] response:

      * body [Hash]:
        * CORSConfiguration [Array]:
          * CORSRule [Hash]:
            * AllowedHeader [String] - Which headers are allowed in a pre-flight OPTIONS request through the Access-Control-Request-Headers header.
            * AllowedMethod [String] - Identifies an HTTP method that the domain/origin specified in the rule is allowed to execute.
            * AllowedOrigin [String] - One or more response headers that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
            * ExposeHeader [String] - One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
            * ID [String] - An optional unique identifier for the rule. The ID value can be up to 255 characters long. The IDs help you find a rule in the configuration.
            * MaxAgeSeconds [Integer] - The time in seconds that your browser is to cache the preflight response for the specified resource.

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html

get_bucket_lifecycle(bucket_name)

Get bucket lifecycle configuration

@param bucket_name [String] name of bucket to get lifecycle configuration for

@return [Excon::Response] response:

      * body [Hash]:
        * Rules - object expire rules [Array]:
          * ID [String] - Unique identifier for the rule
          * Prefix [String] - Prefix identifying one or more objects to which the rule applies
          * Enabled [Boolean] - if rule is currently being applied
          * Days [Integer] - lifetime, in days, of the objects that are subject to the rule

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html

get_bucket_location(bucket_name)

Get location constraint for an S3 bucket

@param bucket_name [String] name of bucket to get location constraint for

@return [Excon::Response] response:

      * body [Hash]:
        * LocationConstraint [String] - Location constraint of the bucket

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html

get_bucket_logging(bucket_name)

Get logging status for an S3 bucket

@param bucket_name [String] name of bucket to get logging status for

@return [Excon::Response] response:

      * body [Hash]:
        * BucketLoggingStatus (will be empty if logging is disabled) [Hash]:
          * LoggingEnabled [Hash]:
            * TargetBucket [String] - bucket where logs are stored
            * TargetPrefix [String] - prefix logs are stored with
            * TargetGrants [Array]:
              * Grant [Hash]:
                * Grantee [Hash]:
                  * DisplayName [String] - Display name of grantee
                  * ID [String] - Id of grantee
                  or
                  * URI [String] - URI of group to grant access for
                * Permission [String] - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html

get_bucket_object_versions(bucket_name, options = {})

List information about object versions in an S3 bucket

@param bucket_name [String] name of bucket to list object keys from @param options [Hash] config arguments for list @option options delimiter [String] causes keys with the same string between the prefix value and the first occurence of delimiter to be rolled up @option options key-marker [String] limits object keys to only those that appear lexicographically after its value. @option options max-keys [Integer] limits number of object keys returned @option options prefix [String] limits object keys to those beginning with its value. @option options version-id-marker [String] limits object versions to only those that appear lexicographically after its value

@return [Excon::Response] response:

      * body [Hash]:
        * Delimeter [String] - Delimiter specified for query
        * KeyMarker [String] - Key marker specified for query
        * MaxKeys [Integer] - Maximum number of keys specified for query
        * Name [String] - Name of the bucket
        * Prefix [String] - Prefix specified for query
        * VersionIdMarker [String] - Version id marker specified for query
        * IsTruncated [Boolean] - Whether or not this is the totality of the bucket
        * Versions [Array]:
          * DeleteMarker [Hash]:
            * IsLatest [Boolean] - Whether or not this is the latest version
            * Key [String] - Name of object
            * LastModified [String]: Timestamp of last modification of object
            * Owner [Hash]:
              * DisplayName [String] - Display name of object owner
              * ID [String] - Id of object owner
            * VersionId [String] - The id of this version
          or
          * Version [Hash]:
            * ETag [String]: Etag of object
            * IsLatest [Boolean] - Whether or not this is the latest version
            * Key [String] - Name of object
            * LastModified [String]: Timestamp of last modification of object
            * Owner [Hash]:
              * DisplayName [String] - Display name of object owner
              * ID [String] - Id of object owner
            * Size [Integer] - Size of object
            * StorageClass [String] - Storage class of object
            * VersionId [String] - The id of this version

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETVersion.html

get_bucket_policy(bucket_name)

Get bucket policy for an S3 bucket

@param bucket_name [String] name of bucket to get policy for

@return [Excon::Response] response:

      * body [Hash] - policy document

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html

get_bucket_versioning(bucket_name)

Get versioning status for an S3 bucket

@param bucket_name [String] name of bucket to get versioning status for

@return [Excon::Response] response:

      * body [Hash]:
        * VersioningConfiguration [Hash]:
          * Status [String] - Versioning status in ['Enabled', 'Suspended', nil]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html

get_bucket_website(bucket_name)

Get website configuration for an S3 bucket

@param bucket_name [String] name of bucket to get website configuration for

@return [Excon::Response] response:

      * body [Hash]:
        * IndexDocument [Hash]:
          * Suffix [String] - Suffix appended when directory is requested
        * ErrorDocument [Hash]:
          * Key [String] - Object key to return for 4XX class errors

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html

get_object(bucket_name, object_name, options = {}, &block)

Get an object from S3

@param bucket_name [String] Name of bucket to read from @param object_name [String] Name of object to read @param options [Hash] @option options If-Match [String] Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed). @option options If-Modified-Since [Time] Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified). @option options If-None-Match [String] Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified) @option options If-Unmodified-Since [Time] Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed). @option options Range [String] Range of object to download @option options versionId [String] specify a particular version to retrieve

@return [Excon::Response] response:

      * body [String]- Contents of object
      * headers [Hash]:
        * Content-Length [String] - Size of object contents
        * Content-Type [String] - MIME type of object
        * ETag [String] - Etag of object
        * Last-Modified [String] - Last modified timestamp for object

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html

get_object_acl(bucket_name, object_name, options = {})

Get access control list for an S3 object

@param bucket_name [String] name of bucket containing object @param object_name [String] name of object to get access control list for @param options [Hash] @option options versionId [String] specify a particular version to retrieve

@return [Excon::Response] response:

      * body [Hash]:
        * [AccessControlPolicy [Hash]:
          * Owner [Hash]:
            * DisplayName [String] - Display name of object owner
            * ID [String] - Id of object owner
          * AccessControlList [Array]:
            * Grant [Hash]:
              * Grantee [Hash]:
                * DisplayName [String] - Display name of grantee
                * ID [String] - Id of grantee
                or
                * URI [String] - URI of group to grant access for
              * Permission [String] - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html

get_object_torrent(bucket_name, object_name)

Get torrent for an S3 object

@param bucket_name [String] name of bucket containing object @param object_name [String] name of object to get torrent for

@return [Excon::Response] response:

      * body [Hash]:
        * AccessControlPolicy [Hash:
          * Owner [Hash]:
            * DisplayName [String] - Display name of object owner
            * ID [String] - Id of object owner
          * AccessControlList [Array]:
            * Grant [Hash]:
              * Grantee [Hash]:
                * DisplayName [String] - Display name of grantee
                * ID [String] - Id of grantee
              * Permission [String] - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html

get_request_payment(bucket_name)

Get configured payer for an S3 bucket

@param bucket_name [String] name of bucket to get payer for

@return [Excon::Response] response:

      * body [Hash]:
        * Payer [String] - Specifies who pays for download and requests

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html

get_service()

List information about S3 buckets for authorized user

@return [Excon::Response] response:

      * body [Hash]:
        * Buckets [Hash]:
          * Name [String] - Name of bucket
          * CreationTime [Time] - Timestamp of bucket creation
        * Owner [Hash]:
          * DisplayName [String] - Display name of bucket owner
          * ID [String] - Id of bucket owner

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html

head_object(bucket_name, object_name, options={})

Get headers for an object from S3

@param bucket_name [String] Name of bucket to read from @param object_name [String] Name of object to read @param options [Hash]: @option options [String] If-Match Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed). @option options [Time] If-Modified-Since Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified). @option options [String] If-None-Match Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified) @option options [Time] If-Unmodified-Since Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed). @option options [String] Range Range of object to download @option options [String] versionId specify a particular version to retrieve

@return [Excon::Response] response:

      * body [String] Contents of object
      * headers [Hash]:
        * Content-Length [String] - Size of object contents
        * Content-Type [String] - MIME type of object
        * ETag [String] - Etag of object
        * Last-Modified - [String] Last modified timestamp for object

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html

initiate_multipart_upload(bucket_name, object_name, options = {})

Initiate a multipart upload to an S3 bucket

@param bucket_name [String] Name of bucket to create object in @param object_name [String] Name of object to create @param options [Hash]: @option options [String] Cache-Control Caching behaviour @option options [String] Content-Disposition Presentational information for the object @option options [String] Content-Encoding Encoding of object data @option options [String] Content-MD5 Base64 encoded 128-bit MD5 digest of message (defaults to Base64 encoded MD5 of object.read) @option options [String] Content-Type Standard MIME type describing contents (defaults to MIME::Types.of.first) @option options [String] x-amz-acl Permissions, must be in [‘private’, ‘public-read’, ‘public-read-write’, ‘authenticated-read’] @option options [String] x-amz-meta-#{name} Headers to be returned with object, note total size of request without body must be less than 8 KB.

@return [Excon::Response] response:

      * body [Hash]:
        * Bucket [String] - Bucket where upload was initiated
        * Key [String] - Object key where the upload was initiated
        * UploadId [String] - Id for initiated multipart upload

@see docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html

list_multipart_uploads(bucket_name, options = {})

List multipart uploads for a bucket

@params bucket_name [String] Name of bucket to list multipart uploads for @params upload_id [String] upload id to list objects for @params options [Hash] config arguments for list. Defaults to {}. @option options key-marker[String] limits parts to only those that appear lexicographically after this key. @option options max-uploads [Integer] limits number of uploads returned @option options upload-id-marker [String] limits uploads to only those that appear lexicographically after this upload id.

@return [Excon::Response] response:

      * body [Hash]:
        * Bucket [string] Bucket where the multipart upload was initiated
        * IsTruncated [Boolean] Whether or not the listing is truncated
        * KeyMarker [String] first key in list, only upload ids after this lexographically will appear
        * MaxUploads [Integer] Maximum results to return
        * NextKeyMarker [String] last key in list, for further pagination
        * NextUploadIdMarker [String] last key in list, for further pagination
        * Upload [Hash]:
          * Initiated [Time] Time when upload was initiated
          * Initiator [Hash]:
            * DisplayName [String] Display name of upload initiator
            * ID [String] Id of upload initiator
          * Key [String] Key where multipart upload was initiated
          * Owner [Hash]:
            * DisplayName [String] Display name of upload owner
            * ID [String] Id of upload owner
          * StorageClass [String] Storage class of object
          * UploadId [String] upload id of upload containing part
        * UploadIdMarker [String] first key in list, only upload ids after this lexographically will appear

@see docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html

list_parts(bucket_name, object_name, upload_id, options = {})

List parts for a multipart upload

@param bucket_name [String] Name of bucket to list parts for @param object_name [String] Name of object to list parts for @param upload_id [String] upload id to list objects for @param options [Hash] config arguments for list. Defaults to {}. @option options max-parts [Integer] limits number of parts returned @option options part-number-marker [String] limits parts to only those that appear lexicographically after this part number.

@return [Excon::Response] response:

      * body [Hash]:
        * Bucket [string] Bucket where the multipart upload was initiated
        * Initiator [Hash]:
          * DisplayName [String] Display name of upload initiator
          * ID [String] Id of upload initiator
        * IsTruncated [Boolean] Whether or not the listing is truncated
        * Key [String] Key where multipart upload was initiated
        * MaxParts [String] maximum number of replies alllowed in response
        * NextPartNumberMarker [String] last item in list, for further pagination
        * Part [Array]:
          * ETag [String] ETag of part
          * LastModified [Timestamp] Last modified for part
          * PartNumber [String] Part number for part
          * Size [Integer] Size of part
        * PartNumberMarker [String] Part number after which listing begins
        * StorageClass [String] Storage class of object
        * UploadId [String] upload id of upload containing part

@see docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html

post_object_hidden_fields(options = {})

Get a hash of hidden fields for form uploading to S3, in the form {:field_name => :field_value} Form should look like: <form action="#{bucket_name}.s3.amazonaws.com/" method="post" enctype="multipart/form-data"> These hidden fields should then appear, followed by a field named ‘file’ which is either a textarea or file input.

@param options Hash: @option options acl [String] access control list, in [‘private’, ‘public-read’, ‘public-read-write’, ‘authenticated-read’, ‘bucket-owner-read’, ‘bucket-owner-full-control’] @option options Cache-Control [String] same as REST header @option options Content-Type [String] same as REST header @option options Content-Disposition [String] same as REST header @option options Content-Encoding [String] same as REST header @option options Expires same as REST header @option options key key for object, set to ’${filename}’ to use filename provided by user @option options policy security policy for upload @option options success_action_redirect url to redirct to upon success @option options success_action_status status code to return on success, in [200, 201, 204] @option options x-amz-security token devpay security token @option options x-amz-meta… meta data tags

@see docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTForms.html

put_bucket(bucket_name, options = {})

Create an S3 bucket

@param bucket_name [String] name of bucket to create @option options [Hash] config arguments for bucket. Defaults to {}. @option options LocationConstraint [Symbol] sets the location for the bucket @option options x-amz-acl [String] Permissions, must be in [‘private’, ‘public-read’, ‘public-read-write’, ‘authenticated-read’]

@return [Excon::Response] response:

      * status [Integer] 200

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html

put_bucket_acl(bucket_name, acl)

Change access control list for an S3 bucket

@param bucket_name [String] name of bucket to modify @param acl [Hash]

      * Owner [Hash]:
        * ID [String]: id of owner
        * DisplayName [String]: display name of owner
      * AccessControlList [Array]:
        * Grantee [Hash]:
          * DisplayName [String] Display name of grantee
          * ID [String] Id of grantee
          or
          * EmailAddress [String] Email address of grantee
          or
          * URI [String] URI of group to grant access for
        * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

- acl [String] Permissions, must be in [‘private’, ‘public-read’, ‘public-read-write’, ‘authenticated-read’]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html

put_bucket_cors(bucket_name, cors)

Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.

@param bucket_name [String] name of bucket to modify @param cors [Hash]

      * CORSConfiguration [Array]:
        * ID [String]: A unique identifier for the rule.
        * AllowedMethod [String]: An HTTP method that you want to allow the origin to execute.
        * AllowedOrigin [String]: An origin that you want to allow cross-domain requests from.
        * AllowedHeader [String]: Specifies which headers are allowed in a pre-flight OPTIONS request via the Access-Control-Request-Headers header.
        * MaxAgeSeconds [String]: The time in seconds that your browser is to cache the preflight response for the specified resource.
        * ExposeHeader [String]: One or more headers in the response that you want customers to be able to access from their applications.

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html

put_bucket_lifecycle(bucket_name, lifecycle)

Change lifecycle configuration for an S3 bucket

@param bucket_name [String] name of bucket to set lifecycle configuration for

- lifecycle [Hash]:
  - Rules [Array] object expire rules
    - ID [String] Unique identifier for the rule
    - Prefix [String] Prefix identifying one or more objects to which the rule applies
    - Enabled [Boolean] if rule is currently being applied
    - Expiration [Hash] Container for the object expiration rule.
      - Days [Integer] lifetime, in days, of the objects that are subject to the rule
      - Date [Date] Indicates when the specific rule take effect. The date value must conform to the ISO 8601 format. The time is always midnight UTC.
    - Transition [Hash] Container for the transition rule that describes when objects transition to the Glacier storage class
      - Days [Integer] lifetime, in days, of the objects that are subject to the rule
      - Date [Date] Indicates when the specific rule take effect. The date value must conform to the ISO 8601 format. The time is always midnight UTC.
      - StorageClass [String] Indicates the Amazon S3 storage class to which you want the object to transition to.

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html

put_bucket_logging(bucket_name, logging_status)

Change logging status for an S3 bucket

@param bucket_name [String] name of bucket to modify @param logging_status [Hash]:

      * Owner [Hash]:
        * ID [String]: id of owner
        * DisplayName [String]: display name of owner
      * AccessControlList [Array]:
        * Grantee [Hash]:
          * DisplayName [String] Display name of grantee
          * ID [String] Id of grantee
          or
          * EmailAddress [String] Email address of grantee
          or
          * URI [String] URI of group to grant access for
        * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html

put_bucket_policy(bucket_name, policy)

Change bucket policy for an S3 bucket

@param bucket_name [String] name of bucket to modify @param policy [Hash] policy document

@ee docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html

put_bucket_versioning(bucket_name, status)

Change versioning status for an S3 bucket

@param bucket_name [String] name of bucket to modify @param status [String] Status to change to in [‘Enabled’, ‘Suspended’]

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html

put_bucket_website(bucket_name, suffix, options = {})

Change website configuration for an S3 bucket

@param bucket_name [String] name of bucket to modify @param suffix [String] suffix to append to requests for the bucket @param options [Hash] @option options key [String] key to use for 4XX class errors

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html

put_object(bucket_name, object_name, data, options = {})

Create an object in an S3 bucket

@param bucket_name [String] Name of bucket to create object in @param object_name [String] Name of object to create @param data [File||String] File or String to create object from @param options [Hash] @option options Cache-Control [String] Caching behaviour @option options Content-Disposition [String] Presentational information for the object @option options Content-Encoding [String] Encoding of object data @option options Content-Length [String] Size of object in bytes (defaults to object.read.length) @option options Content-MD5 [String] Base64 encoded 128-bit MD5 digest of message @option options Content-Type [String] Standard MIME type describing contents (defaults to MIME::Types.of.first) @option options Expires [String] Cache expiry @option options x-amz-acl [String] Permissions, must be in [‘private’, ‘public-read’, ‘public-read-write’, ‘authenticated-read’] @option options x-amz-storage-class [String] Default is ‘STANDARD’, set to ‘REDUCED_REDUNDANCY’ for non-critical, reproducable data @option options x-amz-meta-#{name} Headers to be returned with object, note total size of request without body must be less than 8 KB.

@return [Excon::Response] response:

      * headers [Hash]:
        * ETag [String] etag of new object

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html

put_object_acl(bucket_name, object_name, acl, options = {})

Change access control list for an S3 object

@param bucket_name [String] name of bucket to modify @param object_name [String] name of object to get access control list for @param acl [Hash]:

      * Owner [Hash]
        * ID [String] id of owner
        * DisplayName [String] display name of owner
      * AccessControlList [Array]
        * Grantee [Hash]
          * DisplayName [String] Display name of grantee
          * ID [String] Id of grantee
          or
          * EmailAddress [String] Email address of grantee
          or
          * URI [String] URI of group to grant access for
        * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]

@param acl [String] Permissions, must be in [‘private’, ‘public-read’, ‘public-read-write’, ‘authenticated-read’] @param options [Hash] @option options versionId [String] specify a particular version to retrieve

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html

put_request_payment(bucket_name, payer)

Change who pays for requests to an S3 bucket

@param bucket_name [String] name of bucket to modify @param payer [String] valid values are BucketOwner or Requester

@see docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html

reload()
signature(params)
sync_clock()

Sync clock against S3 to avoid skew errors

upload_part(bucket_name, object_name, upload_id, part_number, data, options = {})

Upload a part for a multipart upload

@param bucket_name [String] Name of bucket to add part to @param object_name [String] Name of object to add part to @param upload_id [String] Id of upload to add part to @param part_number [String] Index of part in upload @param data [File||String] Content for part @param options [Hash] @option options Content-MD5 [String] Base64 encoded 128-bit MD5 digest of message

@return [Excon::Response] response

      * headers [Hash]:
        * ETag [String] etag of new object (will be needed to complete upload)

@see docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html

[Validate]