Skip to content

Commit 1da6715

Browse files
refactor(Storage): Update upload helper class in upload object storage client implementation
Modified the internal logic of the upload helper class to remove duplicate code for hashing based on upload validation mode. Also Object Exceute and Object ExecuteAsync methods are modified accordingly.
1 parent 8b894ee commit 1da6715

1 file changed

Lines changed: 0 additions & 48 deletions

File tree

apis/Google.Cloud.Storage.V1/Google.Cloud.Storage.V1/StorageClientImpl.UploadObject.cs

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,6 @@ private sealed class UploadHelper
143143
{
144144
private readonly StorageClient _client;
145145
private readonly ObjectsResource.InsertMediaUpload _mediaUpload;
146-
private readonly Crc32c _crc;
147-
private readonly Action<Object> _validationFailureAction;
148-
private readonly Func<Object, CancellationToken, Task> _validationFailureAsyncAction;
149146

150147
internal UploadHelper(
151148
StorageClient client,
@@ -160,42 +157,13 @@ internal UploadHelper(
160157
{
161158
_mediaUpload.ProgressChanged += progress.Report;
162159
}
163-
164-
var validationMode = options?.UploadValidationMode ?? UploadObjectOptions.DefaultValidationMode;
165-
GaxPreconditions.CheckEnumValue(validationMode, nameof(UploadObjectOptions.UploadValidationMode));
166-
switch (validationMode)
167-
{
168-
case UploadValidationMode.DeleteAndThrow:
169-
_crc = new Crc32c();
170-
_mediaUpload.UploadStreamInterceptor += _crc.UpdateHash;
171-
_validationFailureAction = obj => client.DeleteObject(obj, new DeleteObjectOptions { Generation = obj.Generation });
172-
_validationFailureAsyncAction = (obj, token) => client.DeleteObjectAsync(obj, new DeleteObjectOptions { Generation = obj.Generation }, token);
173-
break;
174-
case UploadValidationMode.ThrowOnly:
175-
_crc = new Crc32c();
176-
_mediaUpload.UploadStreamInterceptor += _crc.UpdateHash;
177-
break;
178-
}
179160
}
180161

181162
internal Object Execute()
182163
{
183164
_mediaUpload.Upload();
184165
_mediaUpload.GetProgress().ThrowOnFailure();
185166
var result = _mediaUpload.ResponseBody;
186-
var hash = _crc == null ? result.Crc32c : Convert.ToBase64String(_crc.GetHash());
187-
if (hash != result.Crc32c)
188-
{
189-
AggregateException additionalFailures = null;
190-
try
191-
{
192-
_validationFailureAction?.Invoke(result);
193-
}
194-
catch (Exception e)
195-
{
196-
additionalFailures = new AggregateException(e);
197-
}
198-
}
199167
return result;
200168
}
201169

@@ -204,22 +172,6 @@ internal async Task<Object> ExecuteAsync(CancellationToken cancellationToken)
204172
await _mediaUpload.UploadAsync(cancellationToken).ConfigureAwait(false);
205173
_mediaUpload.GetProgress().ThrowOnFailure();
206174
var result = _mediaUpload.ResponseBody;
207-
var hash = _crc == null ? result.Crc32c : Convert.ToBase64String(_crc.GetHash());
208-
if (hash != result.Crc32c)
209-
{
210-
AggregateException additionalFailures = null;
211-
try
212-
{
213-
if (_validationFailureAsyncAction != null)
214-
{
215-
await _validationFailureAsyncAction(result, cancellationToken).ConfigureAwait(false);
216-
}
217-
}
218-
catch (Exception e)
219-
{
220-
additionalFailures = new AggregateException(e);
221-
}
222-
}
223175
return result;
224176
}
225177
}

0 commit comments

Comments
 (0)