Class: Fog::AWS::Storage
- Inherits:
-
Service
- Object
- Service
- Fog::AWS::Storage
show all
- Extended by:
- CredentialFetcher::ServiceMethods
- Defined in:
- lib/fog/aws/storage.rb,
lib/fog/aws/models/storage/file.rb,
lib/fog/aws/models/storage/files.rb,
lib/fog/aws/models/storage/version.rb,
lib/fog/aws/models/storage/versions.rb,
lib/fog/aws/models/storage/directory.rb,
lib/fog/aws/models/storage/directories.rb,
lib/fog/aws/requests/storage/acl_utils.rb,
lib/fog/aws/requests/storage/cors_utils.rb,
lib/fog/aws/requests/storage/get_bucket.rb,
lib/fog/aws/requests/storage/get_object.rb,
lib/fog/aws/requests/storage/list_parts.rb,
lib/fog/aws/requests/storage/put_bucket.rb,
lib/fog/aws/requests/storage/put_object.rb,
lib/fog/aws/requests/storage/sync_clock.rb,
lib/fog/aws/requests/storage/copy_object.rb,
lib/fog/aws/requests/storage/get_service.rb,
lib/fog/aws/requests/storage/head_bucket.rb,
lib/fog/aws/requests/storage/head_object.rb,
lib/fog/aws/requests/storage/upload_part.rb,
lib/fog/aws/requests/storage/delete_bucket.rb,
lib/fog/aws/requests/storage/delete_object.rb,
lib/fog/aws/requests/storage/get_bucket_acl.rb,
lib/fog/aws/requests/storage/get_object_acl.rb,
lib/fog/aws/requests/storage/get_object_url.rb,
lib/fog/aws/requests/storage/put_bucket_acl.rb,
lib/fog/aws/requests/storage/put_object_acl.rb,
lib/fog/aws/requests/storage/put_object_url.rb,
lib/fog/aws/requests/storage/get_bucket_cors.rb,
lib/fog/aws/requests/storage/head_object_url.rb,
lib/fog/aws/requests/storage/list_objects_v2.rb,
lib/fog/aws/requests/storage/put_bucket_cors.rb,
lib/fog/aws/requests/storage/upload_part_copy.rb,
lib/fog/aws/requests/storage/delete_object_url.rb,
lib/fog/aws/requests/storage/get_bucket_policy.rb,
lib/fog/aws/requests/storage/put_bucket_policy.rb,
lib/fog/aws/requests/storage/delete_bucket_cors.rb,
lib/fog/aws/requests/storage/get_bucket_logging.rb,
lib/fog/aws/requests/storage/get_bucket_tagging.rb,
lib/fog/aws/requests/storage/get_bucket_website.rb,
lib/fog/aws/requests/storage/get_object_tagging.rb,
lib/fog/aws/requests/storage/get_object_torrent.rb,
lib/fog/aws/requests/storage/put_bucket_logging.rb,
lib/fog/aws/requests/storage/put_bucket_tagging.rb,
lib/fog/aws/requests/storage/put_bucket_website.rb,
lib/fog/aws/requests/storage/put_object_tagging.rb,
lib/fog/aws/requests/storage/get_bucket_location.rb,
lib/fog/aws/requests/storage/get_object_http_url.rb,
lib/fog/aws/requests/storage/get_request_payment.rb,
lib/fog/aws/requests/storage/post_object_restore.rb,
lib/fog/aws/requests/storage/put_request_payment.rb,
lib/fog/aws/requests/storage/shared_mock_methods.rb,
lib/fog/aws/requests/storage/delete_bucket_policy.rb,
lib/fog/aws/requests/storage/get_bucket_lifecycle.rb,
lib/fog/aws/requests/storage/get_object_https_url.rb,
lib/fog/aws/requests/storage/put_bucket_lifecycle.rb,
lib/fog/aws/requests/storage/delete_bucket_tagging.rb,
lib/fog/aws/requests/storage/delete_bucket_website.rb,
lib/fog/aws/requests/storage/get_bucket_versioning.rb,
lib/fog/aws/requests/storage/put_bucket_versioning.rb,
lib/fog/aws/requests/storage/abort_multipart_upload.rb,
lib/fog/aws/requests/storage/list_multipart_uploads.rb,
lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb,
lib/fog/aws/requests/storage/delete_multiple_objects.rb,
lib/fog/aws/requests/storage/get_bucket_notification.rb,
lib/fog/aws/requests/storage/put_bucket_notification.rb,
lib/fog/aws/requests/storage/complete_multipart_upload.rb,
lib/fog/aws/requests/storage/initiate_multipart_upload.rb,
lib/fog/aws/requests/storage/post_object_hidden_fields.rb,
lib/fog/aws/requests/storage/get_bucket_object_versions.rb
Defined Under Namespace
Modules: DeleteObjectUrl, GetObjectHttpUrl, GetObjectHttpsUrl, GetObjectUrl, HeadObjectUrl, PostObjectHiddenFields, PutObjectUrl, SharedMockMethods, Utils
Classes: Directories, Directory, File, Files, Mock, Real, Version, Versions
Constant Summary
collapse
- COMPLIANT_BUCKET_NAMES =
/^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
- DEFAULT_REGION =
'us-east-1'
- ACCELERATION_HOST =
's3-accelerate.amazonaws.com'
- AWS_FIPS_REGIONS =
%w(us-east-1 us-east-2 us-west-1 us-west-2 us-gov-east-1 us-gov-west-1 ca-central-1 ca-west-1).freeze
- AWS_GOVCLOUD_REGIONS =
%w(us-gov-east-1 us-gov-west-1).freeze
- DEFAULT_SCHEME =
'https'
- DEFAULT_SCHEME_PORT =
{
'http' => 80,
'https' => 443
}
- DEFAULT_CONNECTION_OPTIONS =
{
retry_limit: 5,
retry_interval: 1
}
- MIN_MULTIPART_CHUNK_SIZE =
5242880
- MAX_SINGLE_PUT_SIZE =
5368709120
- VALID_QUERY_KEYS =
%w[
acl
continuation-token
cors
delete
fetch-owner
lifecycle
list-type
location
logging
notification
partNumber
policy
requestPayment
response-cache-control
response-content-disposition
response-content-encoding
response-content-language
response-content-type
response-expires
restore
start-after
tagging
torrent
uploadId
uploads
versionId
versioning
versions
website
]
- ALLOWED_UPLOAD_PART_OPTIONS =
%i(
x-amz-copy-source
x-amz-copy-source-if-match
x-amz-copy-source-if-modified-since
x-amz-copy-source-if-none-match
x-amz-copy-source-if-unmodified-since
x-amz-copy-source-range
x-amz-copy-source-server-side-encryption-customer-algorithm
x-amz-copy-source-server-side-encryption-customer-key
x-amz-copy-source-server-side-encryption-customer-key-MD5
x-amz-expected-bucket-owner
x-amz-request-payer
x-amz-server-side-encryption-customer-algorithm
x-amz-server-side-encryption-customer-key
x-amz-server-side-encryption-customer-key-MD5
x-amz-source-expected-bucket-owner
).freeze
Class Method Summary
collapse
fetch_credentials, fetch_credentials_token_header
Class Method Details
.acl_to_hash(acl_xml) ⇒ Object
53
54
55
56
57
|
# File 'lib/fog/aws/requests/storage/acl_utils.rb', line 53
def self.acl_to_hash(acl_xml)
parser = Fog::Parsers::AWS::Storage::AccessControlList.new
Nokogiri::XML::SAX::Parser.new(parser).parse(acl_xml)
parser.response
end
|
.cors_to_hash(cors_xml) ⇒ Object
32
33
34
35
36
|
# File 'lib/fog/aws/requests/storage/cors_utils.rb', line 32
def self.cors_to_hash(cors_xml)
parser = Fog::Parsers::AWS::Storage::CorsConfiguration.new
Nokogiri::XML::SAX::Parser.new(parser).parse(cors_xml)
parser.response
end
|
.hash_to_acl(acl) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/fog/aws/requests/storage/acl_utils.rb', line 7
def self.hash_to_acl(acl)
data = "<AccessControlPolicy>\n"
if acl['Owner'] && (acl['Owner']['ID'] || acl['Owner']['DisplayName'])
data << " <Owner>\n"
data << " <ID>#{acl['Owner']['ID']}</ID>\n" if acl['Owner']['ID']
data << " <DisplayName>#{acl['Owner']['DisplayName']}</DisplayName>\n" if acl['Owner']['DisplayName']
data << " </Owner>\n"
end
grants = [acl['AccessControlList']].flatten.compact
data << " <AccessControlList>\n" if grants.any?
grants.each do |grant|
data << " <Grant>\n"
grantee = grant['Grantee']
type = case
when grantee.key?('ID')
'CanonicalUser'
when grantee.key?('EmailAddress')
'AmazonCustomerByEmail'
when grantee.key?('URI')
'Group'
end
data << " <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"#{type}\">\n"
case type
when 'CanonicalUser'
data << " <ID>#{grantee['ID']}</ID>\n" if grantee['ID']
data << " <DisplayName>#{grantee['DisplayName']}</DisplayName>\n" if grantee['DisplayName']
when 'AmazonCustomerByEmail'
data << " <EmailAddress>#{grantee['EmailAddress']}</EmailAddress>\n" if grantee['EmailAddress']
when 'Group'
data << " <URI>#{grantee['URI']}</URI>\n" if grantee['URI']
end
data << " </Grantee>\n"
data << " <Permission>#{grant['Permission']}</Permission>\n"
data << " </Grant>\n"
end
data << " </AccessControlList>\n" if grants.any?
data << "</AccessControlPolicy>"
data
end
|
.hash_to_cors(cors) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/fog/aws/requests/storage/cors_utils.rb', line 8
def self.hash_to_cors(cors)
data = "<CORSConfiguration>\n"
[cors['CORSConfiguration']].flatten.compact.each do |rule|
data << " <CORSRule>\n"
['ID', 'MaxAgeSeconds'].each do |key|
data << " <#{key}>#{rule[key]}</#{key}>\n" if rule[key]
end
['AllowedOrigin', 'AllowedMethod', 'AllowedHeader', 'ExposeHeader'].each do |key|
[rule[key]].flatten.compact.each do |value|
data << " <#{key}>#{value}</#{key}>\n"
end
end
data << " </CORSRule>\n"
end
data << "</CORSConfiguration>"
data
end
|