Следующая программа извлекает данные из веб-службы, записывает их в CSV, загружает файл на S3 и затем удаляет его.У меня проблема в том, что он не может удалить файл, потому что он говорит «System.IO.IOException:« Процесс не может получить доступ к файлу «file.csv», потому что он используется другим процессом. »Я предполагаю, что он не закончил писать в S3, потому что там его нет.Есть предложения?
Здесь я закрываю файл, загружаю на S3 и пытаюсь удалить.
outputFile.Flush();
outputFile.Close();
AmazonS3Uploader awsfu = new AmazonS3Uploader();
awsfu.UploadFile(outputfilePath, "api-end-point", filenameaws);
System.IO.File.Delete(@outputfilePath);
Ниже приведен код для загрузки на S3
class AmazonS3Uploader
{
public void UploadFile(string filePath, string bucketName, string keyName)
{
var client1 = new AmazonS3Client(Amazon.RegionEndpoint.USEast2);
Console.WriteLine("s3 writing");
try
{
PutObjectRequest Request = new PutObjectRequest
{
BucketName = bucketName,
Key = keyName,
FilePath = filePath,
};
client1.PutObjectAsync(Request);
}
catch (AmazonS3Exception amazonS3Exception)
{
if (amazonS3Exception.ErrorCode != null &&
(amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId")
||
amazonS3Exception.ErrorCode.Equals("InvalidSecurity")))
{
throw new Exception("Check the provided AWS Credentials.");
}
else
{
throw new Exception("Error occurred: " + amazonS3Exception.Message);
}
}
//System.IO.File.Delete(@filePath); edit
}
}