C#S3 Bucket TransferUtilityDownloadRequest工作,但TransferUtilityDownloadDirectoryRequest不工作

C#S3 Bucket TransferUtilityDownloadRequest工作,但TransferUtilityDownloadDirectoryRequest不工作,c#,amazon-web-services,amazon-s3,amazon-ec2,access-denied,C#,Amazon Web Services,Amazon S3,Amazon Ec2,Access Denied,我正在使用TransferUtilityDownload和TransferUtilityDownloadDirectory下载文件和完整目录。然而,即使我使用相同的bucket名称格式,它也适用于单个文件,但不适用于目录,并返回403拒绝访问。(列出对象也有同样的问题): 403拒绝访问错误通常是由于错误的bucket或目录名引起的(如果请求找不到bucket或目录,这是一个已知问题)。但是,bucket名称和目录名称是正确的。我想知道是否缺少格式化或设置某些属性 Quick note此版本还返

我正在使用TransferUtilityDownload和TransferUtilityDownloadDirectory下载文件和完整目录。然而,即使我使用相同的bucket名称格式,它也适用于单个文件,但不适用于目录,并返回403拒绝访问。(列出对象也有同样的问题):

403拒绝访问错误通常是由于错误的bucket或目录名引起的(如果请求找不到bucket或目录,这是一个已知问题)。但是,bucket名称和目录名称是正确的。我想知道是否缺少格式化或设置某些属性

Quick note此版本还返回相同的403错误:

               //This request for directory download
              drequest.BucketName = bucketName;
              drequest.S3Directory = UnscheduledIn; 
              drequest.LocalDirectory = "D:\\input\\";
              drequest.DownloadFilesConcurrently = true;

看起来bucket名称和s3目录路径存在一些问题。用这段代码更新您的代码

//This request for directory download
drequest.BucketName = bucketName;
drequest.S3Directory = '/' + UnscheduledIn; 
drequest.LocalDirectory = "D:\\input";
drequest.DownloadFilesConcurrently = true;
更新:

一般情况下,403禁止来自服务器,以防身份验证失败/权限问题。 请检查您的bucket策略以允许下载

    {
      "Sid": "AllowAllS3ActionsInUserFolder",
      "Effect": "Allow",
      "Action": ["s3:*"],
      "Resource": ["arn:aws:s3:::my-bucket-us-east-1-prod/abc/butter/input_butter_11nov2019/*","arn:aws:s3:::my-bucket-us-east-1-prod/abc/butter/input_butter_11nov2019/unscheduled/*"]
    }

看起来bucket名称和s3目录路径存在一些问题。用这段代码更新您的代码

//This request for directory download
drequest.BucketName = bucketName;
drequest.S3Directory = '/' + UnscheduledIn; 
drequest.LocalDirectory = "D:\\input";
drequest.DownloadFilesConcurrently = true;
更新:

一般情况下,403禁止来自服务器,以防身份验证失败/权限问题。 请检查您的bucket策略以允许下载

    {
      "Sid": "AllowAllS3ActionsInUserFolder",
      "Effect": "Allow",
      "Action": ["s3:*"],
      "Resource": ["arn:aws:s3:::my-bucket-us-east-1-prod/abc/butter/input_butter_11nov2019/*","arn:aws:s3:::my-bucket-us-east-1-prod/abc/butter/input_butter_11nov2019/unscheduled/*"]
    }

不幸的是,相同的结果访问被拒绝-Web异常:远程服务器返回了一个错误(403)我刚刚更新了答案,您可以检查您的bucket策略吗。请仔细阅读,我可以使用fileTransferUtility下载。下载(请求);然而问题在于fileTransferUtility.DownloadDirectory(drequest);所以这里没有政策问题。嗨@JohnG,我相信我仔细阅读了它,否则我会建议你检查你的访问密钥或秘密密钥。您正在下载的目录是另一个(父)目录的内容,而您正在下载的文件是另一个(子)目录的内容,这些目录的bucket策略可能不同,因此只需检查这两个目录的bucket策略即可。@Tinker感谢您的解释。这是一个EC2框,是的,我们检查了所有策略是否正常。不幸的是,相同的结果访问被拒绝-Web异常:远程服务器返回了一个错误(403)我刚刚更新了答案,您可以检查您的bucket策略吗。请仔细阅读,我可以使用fileTransferUtility下载。下载(请求);然而问题在于fileTransferUtility.DownloadDirectory(drequest);所以这里没有政策问题。嗨@JohnG,我相信我仔细阅读了它,否则我会建议你检查你的访问密钥或秘密密钥。您正在下载的目录是另一个(父)目录的内容,而您正在下载的文件是另一个(子)目录的内容,这些目录的bucket策略可能不同,因此只需检查这两个目录的bucket策略即可。@Tinker感谢您的解释。这是一个EC2框,是的,我们检查了所有政策是否正常。