Skip to content

Commit 69cc6a8

Browse files
authored
cleanup(storage): use Disable{MD5*,Crc32c*} consistently (#7034)
All GCS options are implemented as an `absl::optional<T>`, in the case of `DisableMD5Hash` and `DisableCrc32cChecksum` this is `absl::optional<bool>`. The MD5 hashes are disabled by default, this is achieved by having the default constructor for `DisableMD5Hash` initialize the option to `true`. CRC32C checksums are enabled by default, the default constructor initializes the optional to `absl::nullopt` (this is consistent with all the other options). After this change we always use these options by doing: ```cc auto value = request.GetOption<Disable*>().value_or(false); ``` This makes the usage consistent, and only the constructor encodes what the default is.
1 parent ba50d40 commit 69cc6a8

3 files changed

Lines changed: 11 additions & 11 deletions

File tree

google/cloud/storage/internal/curl_client.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ StatusOr<ObjectMetadata> CurlClient::InsertObjectMedia(
535535
// If the application has set an explicit hash value we need to use multipart
536536
// uploads. `DisableMD5Hash` and `DisableCrc32cChecksum` should not be
537537
// dependent on each other.
538-
if (!request.GetOption<DisableMD5Hash>().value() ||
538+
if (!request.GetOption<DisableMD5Hash>().value_or(false) ||
539539
!request.GetOption<DisableCrc32cChecksum>().value_or(false) ||
540540
request.HasOption<MD5HashValue>() ||
541541
request.HasOption<Crc32cChecksumValue>()) {
@@ -1236,7 +1236,7 @@ StatusOr<ObjectMetadata> CurlClient::InsertObjectMediaXml(
12361236
if (request.HasOption<MD5HashValue>()) {
12371237
builder.AddHeader("x-goog-hash: md5=" +
12381238
request.GetOption<MD5HashValue>().value());
1239-
} else if (!request.GetOption<DisableMD5Hash>().value()) {
1239+
} else if (!request.GetOption<DisableMD5Hash>().value_or(false)) {
12401240
builder.AddHeader("x-goog-hash: md5=" + ComputeMD5Hash(request.contents()));
12411241
}
12421242
if (request.HasOption<Crc32cChecksumValue>()) {
@@ -1350,7 +1350,7 @@ StatusOr<ObjectMetadata> CurlClient::InsertObjectMediaMultipart(
13501350
}
13511351
if (request.HasOption<MD5HashValue>()) {
13521352
metadata["md5Hash"] = request.GetOption<MD5HashValue>().value();
1353-
} else if (!request.GetOption<DisableMD5Hash>().value()) {
1353+
} else if (!request.GetOption<DisableMD5Hash>().value_or(false)) {
13541354
metadata["md5Hash"] = ComputeMD5Hash(request.contents());
13551355
}
13561356

google/cloud/storage/internal/hash_function.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ std::unique_ptr<HashFunction> CreateHashFunction(
4545
if (request.RequiresRangeHeader()) return CreateNullHashFunction();
4646
return CreateHashFunction(
4747
request.GetOption<DisableCrc32cChecksum>().value_or(false),
48-
request.GetOption<DisableMD5Hash>().value_or(true));
48+
request.GetOption<DisableMD5Hash>().value_or(false));
4949
}
5050

5151
std::unique_ptr<HashFunction> CreateHashFunction(
@@ -55,7 +55,7 @@ std::unique_ptr<HashFunction> CreateHashFunction(
5555
return CreateHashFunction(
5656
request.GetOption<DisableCrc32cChecksum>().value_or(false) ||
5757
!request.GetOption<Crc32cChecksumValue>().value_or("").empty(),
58-
request.GetOption<DisableMD5Hash>().value_or(true) ||
58+
request.GetOption<DisableMD5Hash>().value_or(false) ||
5959
!request.GetOption<MD5HashValue>().value_or("").empty());
6060
}
6161

google/cloud/storage/internal/hash_validator.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,18 @@ std::unique_ptr<HashValidator> CreateHashValidator(
5252
if (request.RequiresRangeHeader()) return CreateNullHashValidator();
5353

5454
// `DisableMD5Hash`'s default value is `true`.
55-
auto disable_md5 = request.GetOption<DisableMD5Hash>().value();
56-
auto disable_crc32c = request.HasOption<DisableCrc32cChecksum>() &&
57-
request.GetOption<DisableCrc32cChecksum>().value();
55+
auto disable_md5 = request.GetOption<DisableMD5Hash>().value_or(false);
56+
auto disable_crc32c =
57+
request.GetOption<DisableCrc32cChecksum>().value_or(false);
5858
return CreateHashValidator(disable_md5, disable_crc32c);
5959
}
6060

6161
std::unique_ptr<HashValidator> CreateHashValidator(
6262
ResumableUploadRequest const& request) {
6363
// `DisableMD5Hash`'s default value is `true`.
64-
auto disable_md5 = request.GetOption<DisableMD5Hash>().value();
65-
auto disable_crc32c = request.HasOption<DisableCrc32cChecksum>() &&
66-
request.GetOption<DisableCrc32cChecksum>().value();
64+
auto disable_md5 = request.GetOption<DisableMD5Hash>().value_or(false);
65+
auto disable_crc32c =
66+
request.GetOption<DisableCrc32cChecksum>().value_or(false);
6767
return CreateHashValidator(disable_md5, disable_crc32c);
6868
}
6969

0 commit comments

Comments
 (0)