@@ -2,6 +2,7 @@ import 'dart:async';
22import 'dart:convert' ;
33
44import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' ;
5+ import 'package:crypto/crypto.dart' ;
56import 'package:gcloud/storage.dart' ;
67import '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
166167class _Bucket implements Bucket {
0 commit comments