【发布时间】:2019-05-30 04:21:37
【问题描述】:
我对 AWS s3 存储桶概念有点陌生。我想从 s3 存储桶中的文件夹“TODAY FILE1”下载文件并使用它。我知道如何使用命令提示符在命令行中执行此操作。我不知道如何在 C# 中实现。
假设
这是我在命令提示符下所做的
C:\> aws s3 cp "s3://mys3bucket-output/TODAY FILE1" . --recursive
这就是我做的 C# 程序并得到错误
string accessKey = "abc123";
string secretKey = "secret123";
string bucketName = "mys3bucket-output"
TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(accessKey, secretKey, Amazon.RegionEndpoint.USEast2));
BasicAWSCredentials basicCredentials = new BasicAWSCredentials(accessKey,secretKey);
AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey), Amazon.RegionEndpoint.USEast2);
ListObjectsRequest request = new ListObjectsRequest();
ListObjectsResponse response = s3Client.ListObjects(request.BucketName= bucketName, request.Prefix="TODAY FILE1/");
foreach (S3Object obj in response.S3Objects)
{
try
{
Console.WriteLine("{0}", obj.Key);
fileTransferUtility.Download(@"C:\Temp", bucketName, obj.Key);
}
catch (Exception Excep)
{
Console.WriteLine(Excep.Message, Excep.InnerException);
}
}
我收到异常 Amazon.Runtime.AmazonServiceException: 'Access to the path 'C:\Temp' is denied
我不知道该怎么办 谢谢先生
【问题讨论】:
-
您的机器上是否有一个名为
C:\Temp的文件夹?或者是否存在名为C:\Temp的文件? -
为什么要下载“C:\Temp”?您可以尝试使用您有权访问的真正现有文件吗?
-
是的,我的本地机器上有一个文件夹 C:\temp
-
运行您的代码的用户是否具有写入该文件的必要权限?是否以管理员身份运行?