Updating S3 to use the async interface

This commit is contained in:
Kenneth Skovhede
2024-03-01 14:30:28 +01:00
parent 5c1d6bda76
commit c08571efba
2 changed files with 14 additions and 13 deletions
+5 -5
View File
@@ -96,7 +96,7 @@ namespace Duplicati.Library.Backend
if (!string.IsNullOrEmpty(m_locationConstraint))
request.BucketRegionName = m_locationConstraint;
m_client.PutBucket(request);
m_client.PutBucketAsync(request).GetAwaiter().GetResult();
}
public virtual void GetFileStream(string bucketName, string keyName, System.IO.Stream target)
@@ -107,7 +107,7 @@ namespace Duplicati.Library.Backend
Key = keyName
};
using (GetObjectResponse objectGetResponse = m_client.GetObject(objectGetRequest))
using (GetObjectResponse objectGetResponse = m_client.GetObjectAsync(objectGetRequest).GetAwaiter().GetResult())
using (System.IO.Stream s = objectGetResponse.ResponseStream)
{
try
@@ -164,7 +164,7 @@ namespace Duplicati.Library.Backend
Key = keyName
};
m_client.DeleteObject(objectDeleteRequest);
m_client.DeleteObjectAsync(objectDeleteRequest).GetAwaiter().GetResult();
}
public virtual IEnumerable<IFileEntry> ListBucket(string bucketName, string prefix)
@@ -192,7 +192,7 @@ namespace Duplicati.Library.Backend
ListObjectsResponse listResponse;
try
{
listResponse = m_client.ListObjects(listRequest);
listResponse = m_client.ListObjectsAsync(listRequest).GetAwaiter().GetResult();
}
catch (AmazonS3Exception e)
{
@@ -230,7 +230,7 @@ namespace Duplicati.Library.Backend
DestinationKey = target
};
m_client.CopyObject(copyObjectRequest);
m_client.CopyObjectAsync(copyObjectRequest).GetAwaiter().GetResult();
DeleteObject(bucketName, source);
}
+9 -8
View File
@@ -155,9 +155,10 @@ namespace Duplicati.Library.Backend
ActionNames = new[] { "iam:CreateUser" }.ToList()
};
return cl.SimulatePrincipalPolicy(simulatePrincipalPolicy).
EvaluationResults.First().
EvalDecision == PolicyEvaluationDecisionType.Allowed;
return cl.SimulatePrincipalPolicyAsync(simulatePrincipalPolicy)
.GetAwaiter().GetResult()
.EvaluationResults.First()
.EvalDecision == PolicyEvaluationDecisionType.Allowed;
}
@@ -195,7 +196,7 @@ namespace Duplicati.Library.Backend
User user;
try
{
user = cl.GetUser().User;
user = cl.GetUserAsync().GetAwaiter().GetResult().User;
}
catch (Exception ex) when (ex is NoSuchEntityException || ex is ServiceFailureException)
{
@@ -217,13 +218,13 @@ namespace Duplicati.Library.Backend
var policydoc = GeneratePolicyDoc(path);
var cl = new AmazonIdentityManagementServiceClient(awsid, awskey);
var user = cl.CreateUser(new CreateUserRequest(username)).User;
cl.PutUserPolicy(new PutUserPolicyRequest(
var user = cl.CreateUserAsync(new CreateUserRequest(username)).GetAwaiter().GetResult().User;
cl.PutUserPolicyAsync(new PutUserPolicyRequest(
user.UserName,
policyname,
policydoc
));
var key = cl.CreateAccessKey(new CreateAccessKeyRequest { UserName = user.UserName }).AccessKey;
)).GetAwaiter().GetResult();
var key = cl.CreateAccessKeyAsync(new CreateAccessKeyRequest { UserName = user.UserName }).GetAwaiter().GetResult().AccessKey;
return new Dictionary<string, string>
{