public async Task <IReadOnlyDictionary <string, string> > GetPropertiesAsync(string key) { int retryCount = 0; Exception lastException; do { if (retryCount > 0) { await Task.Delay(retryPolicy.GetDelay(retryCount)).ConfigureAwait(false); } try { var request = new ObjectHeadRequest(client.Host, bucketName, key); using var result = await client.GetObjectHeadAsync(request).ConfigureAwait(false); return(result.Properties); } catch (S3Exception ex) when(ex.IsTransient) { lastException = ex; } retryCount++; }while (retryPolicy.ShouldRetry(retryCount)); throw lastException; }
public async Task <IReadOnlyDictionary <string, string> > GetPropertiesAsync(string key) { var request = new ObjectHeadRequest(client.Host, bucketName, key: key); using var result = await client.GetObjectHeadAsync(request).ConfigureAwait(false); return(result.Properties !); }
public async Task <IReadOnlyDictionary <string, string> > GetMetadataAsync(string name) { var headRequest = new ObjectHeadRequest(client.Region, bucketName, key: name); var result = await client.GetObjectHeadAsync(headRequest).ConfigureAwait(false); return(result.Headers); }
public async Task <IReadOnlyDictionary <string, string> > GetMetadataAsync(string name) { #region Preconditions if (name == null) { throw new ArgumentNullException(nameof(name)); } #endregion var request = new ObjectHeadRequest(client.Host, bucketName, key: name); var result = await client.GetObjectHeadAsync(request).ConfigureAwait(false); return(result.Metadata); }