首页 > 解决方案 > S3 TransferUtility 抛出“FilePath 属性指示的文件不存在”错误

问题描述

我正在尝试将一个以编程方式创建的文件上传到我的 Amazon S3 存储桶,但我不断收到以下错误:

FilePath 属性指示的文件不存在。

我的应用程序是 Azure Functions 应用程序,但我在本地和 Azure 上都收到此错误。

当我在本地运行它时,我看到该文件实际上就在那里——正如文件路径所指示的那样。在本地,这条路径是C:\Users\{MyUserName}\AppDate\Local\Temp\{MyFileName}.csv.

这是处理将文件上传到我的 S3 存储桶的方法。首先,处理以下内容的构造函数部分AmazonS3Client

private readonly AmazonS3Client _client;
private string _bucketName;

public S3Client(string accessKey, string secretKey, string bucketName)
{
   if(_client == null)
     _client = new AmazonS3Client(accessKey, secretKey, Amazon.RegionEndpoint.USEast1);

   _bucketName = bucketName;
}

这是处理将文件上传到 S3 的方法:

public async Task UploadFileToS3(string filePath, string blobName)
{
   try
   {
      var fileTransferUtility = new TransferUtility(_client);

      await fileTransferUtility.UploadAsync(filePath, _bucketName, blobName);
   }
   catch (Exception e)
   {
      throw new Exception(e.Message);
   }
}

知道可能导致此问题的原因是什么吗?

PS这是应用程序规格

<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>

标签: c#amazon-s3azure-functions

解决方案


推荐阅读