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

Methods

Included Modules

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

Public Class methods

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 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 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 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 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

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 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 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 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 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 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

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 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

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 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 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 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

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 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 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 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 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 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 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 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

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

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 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 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 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

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

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

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

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

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

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

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

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

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

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

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

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

Sync clock against S3 to avoid skew errors

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]