fog-aws 3.16.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/lib/fog/aws/models/storage/file.rb +22 -7
- data/lib/fog/aws/storage.rb +6 -1
- data/lib/fog/aws/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd719ef24c69a6ef93d8b15e4c8304b32a4b762cd6054c4506233c4184197ba9
|
4
|
+
data.tar.gz: 556c9dfb1b9cc3f56e5d5fdac16db6484261f56417357de67468f1e7e7c7e5fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e1b1a7646803fea71d698b0bdca79bae49bdac336536e56fca0ca06a0a9f33dda197e72fde65c4871da40c440618521c66edf91b0aa114444e60badeef39708
|
7
|
+
data.tar.gz: 2cc2a96a966d3eff885333fbcd53502505ab64091cc477a0e13a7a0d166749843bdd7afd6a3b67a45c6cdfa9e9ebc09c3e09c84c0e9003d473d8046c5a204423
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v3.18.0](https://github.com/fog/fog-aws/tree/v3.18.0) (2023-02-16)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.17.0...v3.18.0)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- Only compute SSE-C headers when needed in multipart upload [\#669](https://github.com/fog/fog-aws/pull/669) ([stanhu](https://github.com/stanhu))
|
10
|
+
|
11
|
+
## [v3.17.0](https://github.com/fog/fog-aws/tree/v3.17.0) (2023-02-09)
|
12
|
+
|
13
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.16.0...v3.17.0)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- Support disabling of Content-MD5 for FIPS [\#668](https://github.com/fog/fog-aws/pull/668) ([stanhu](https://github.com/stanhu))
|
18
|
+
|
3
19
|
## [v3.16.0](https://github.com/fog/fog-aws/tree/v3.16.0) (2023-01-26)
|
4
20
|
|
5
21
|
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.15.0...v3.16.0)
|
@@ -335,12 +335,12 @@ module Fog
|
|
335
335
|
body.rewind rescue nil
|
336
336
|
end
|
337
337
|
while (chunk = body.read(multipart_chunk_size)) do
|
338
|
-
part_upload = service.upload_part(directory.key, key, upload_id, part_tags.size + 1, chunk, part_headers(chunk
|
338
|
+
part_upload = service.upload_part(directory.key, key, upload_id, part_tags.size + 1, chunk, part_headers(chunk))
|
339
339
|
part_tags << part_upload.headers["ETag"]
|
340
340
|
end
|
341
341
|
|
342
342
|
if part_tags.empty? #it is an error to have a multipart upload with no parts
|
343
|
-
part_upload = service.upload_part(directory.key, key, upload_id, 1, '', part_headers(''
|
343
|
+
part_upload = service.upload_part(directory.key, key, upload_id, 1, '', part_headers(''))
|
344
344
|
part_tags << part_upload.headers["ETag"]
|
345
345
|
end
|
346
346
|
|
@@ -387,11 +387,18 @@ module Fog
|
|
387
387
|
end
|
388
388
|
end
|
389
389
|
|
390
|
-
def part_headers(chunk
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
390
|
+
def part_headers(chunk)
|
391
|
+
base_headers = part_checksum_headers(chunk)
|
392
|
+
|
393
|
+
# Only SSE-C headers needed in the UploadPart request. [1]
|
394
|
+
# x-amz-server-side-encryption and
|
395
|
+
# x-amz-server-side-encryption-aws-kms-key-id are only needed
|
396
|
+
# in the CreateMultipartUpload request. [2]
|
397
|
+
# [1] https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html
|
398
|
+
# [2] https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
|
399
|
+
base_headers.merge!(encryption_customer_key_headers) if encryption && encryption_key
|
400
|
+
|
401
|
+
base_headers
|
395
402
|
end
|
396
403
|
|
397
404
|
def encryption_customer_key_headers
|
@@ -402,6 +409,14 @@ module Fog
|
|
402
409
|
}
|
403
410
|
end
|
404
411
|
|
412
|
+
def part_checksum_headers(chunk)
|
413
|
+
if service.disable_content_md5_validation
|
414
|
+
{}
|
415
|
+
else
|
416
|
+
{ 'Content-MD5' => Base64.encode64(OpenSSL::Digest::MD5.digest(chunk)).strip }
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
405
420
|
def create_part_list(upload_part_options)
|
406
421
|
current_pos = 0
|
407
422
|
count = 0
|
data/lib/fog/aws/storage.rb
CHANGED
@@ -46,7 +46,7 @@ module Fog
|
|
46
46
|
]
|
47
47
|
|
48
48
|
requires :aws_access_key_id, :aws_secret_access_key
|
49
|
-
recognizes :endpoint, :region, :host, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style, :acceleration, :instrumentor, :instrumentor_name, :aws_signature_version, :enable_signature_v4_streaming, :virtual_host, :cname, :max_put_chunk_size, :max_copy_chunk_size, :aws_credentials_refresh_threshold_seconds
|
49
|
+
recognizes :endpoint, :region, :host, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style, :acceleration, :instrumentor, :instrumentor_name, :aws_signature_version, :enable_signature_v4_streaming, :virtual_host, :cname, :max_put_chunk_size, :max_copy_chunk_size, :aws_credentials_refresh_threshold_seconds, :disable_content_md5_validation
|
50
50
|
|
51
51
|
secrets :aws_secret_access_key, :hmac
|
52
52
|
|
@@ -119,6 +119,7 @@ module Fog
|
|
119
119
|
|
120
120
|
module Utils
|
121
121
|
attr_accessor :region
|
122
|
+
attr_accessor :disable_content_md5_validation
|
122
123
|
|
123
124
|
# Amazon S3 limits max chunk size that can be uploaded/copied in a single request to 5GB.
|
124
125
|
# Other S3-compatible storages (like, Ceph) do not have such limit.
|
@@ -486,6 +487,8 @@ module Fog
|
|
486
487
|
init_max_put_chunk_size!(options)
|
487
488
|
init_max_copy_chunk_size!(options)
|
488
489
|
|
490
|
+
@disable_content_md5_validation = options[:disable_content_md5_validation] || false
|
491
|
+
|
489
492
|
@signature_version = options.fetch(:aws_signature_version, 4)
|
490
493
|
validate_signature_version!
|
491
494
|
setup_credentials(options)
|
@@ -554,6 +557,8 @@ module Fog
|
|
554
557
|
init_max_put_chunk_size!(options)
|
555
558
|
init_max_copy_chunk_size!(options)
|
556
559
|
|
560
|
+
@disable_content_md5_validation = options[:disable_content_md5_validation] || false
|
561
|
+
|
557
562
|
@region = options[:region] || DEFAULT_REGION
|
558
563
|
|
559
564
|
if @endpoint = options[:endpoint]
|
data/lib/fog/aws/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Lane
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-02-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|