Skip to content

Commit 67ccc86

Browse files
authored
Use md5 hash for etag in mem_storage (#8111)
1 parent d2af649 commit 67ccc86

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

pkg/fake_gcloud/lib/mem_storage.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:async';
22
import 'dart:convert';
33

44
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart';
5+
import 'package:crypto/crypto.dart';
56
import 'package:gcloud/storage.dart';
67
import 'package:logging/logging.dart';
78

@@ -130,6 +131,8 @@ class _File implements ObjectInfo {
130131
@override
131132
final int crc32CChecksum;
132133
@override
134+
final List<int> md5Hash;
135+
@override
133136
final DateTime updated;
134137
@override
135138
final ObjectMetadata metadata;
@@ -141,14 +144,15 @@ class _File implements ObjectInfo {
141144
DateTime? updated,
142145
}) : // TODO: use a real CRC32 check
143146
crc32CChecksum = content.fold<int>(0, (a, b) => a + b) & 0xffffffff,
147+
md5Hash = md5.convert(content).bytes,
144148
updated = updated ?? DateTime.now().toUtc(),
145149
metadata = ObjectMetadata(acl: Acl([]));
146150

147151
@override
148152
Uri get downloadLink => Uri(scheme: 'gs', host: bucketName, path: name);
149153

150154
@override
151-
String get etag => crc32CChecksum.toRadixString(16);
155+
String get etag => md5Hash.toString();
152156

153157
@override
154158
ObjectGeneration get generation {
@@ -158,9 +162,6 @@ class _File implements ObjectInfo {
158162

159163
@override
160164
int get length => content.length;
161-
162-
@override
163-
List<int> get md5Hash => etag.codeUnits;
164165
}
165166

166167
class _Bucket implements Bucket {

0 commit comments

Comments
 (0)