0

我正在使用适用于 .NET 的 AWS SDK,我正在尝试从 S3 存储桶中获取目录信息。

以下代码有效,我可以在我的根目录中获取文件folder

// path: folder
S3DirectoryInfo di = new S3DirectoryInfo(s3Client, "myS3BucketName", "folder");

if (di.Exists)
{
    IS3FileSystemInfo[] files = di.GetFileSystemInfos();
}

现在我尝试相同的代码,并在下查询sub-folderfolder代码获取目录信息......但是在读取文件内容时,它抛出异常

// path: folder/sub-folder
S3DirectoryInfo di = new S3DirectoryInfo(s3Client, "myS3BucketName", "folder/sub-folder");

if (di.Exists)
{
    // directory exists, but reading files throws exception
    IS3FileSystemInfo[] files = di.GetFileSystemInfos();
}

这是一个例外:

键是一个目录

这就是我初始化 s3Client 的方式:

s3Client = new AmazonS3Client("Ak...access-key...", "+8b...secret-key...", RegionEndpoint.APSoutheast2);
4

1 回答 1

0

问题是在路径中使用斜杠......使用高级 API 时,您需要在路径中使用反斜杠。

注意:使用 AWS 低级 API 时需要在路径中使用斜杠。

此代码工作正常:

// path: folder\sub-folder\
string path = @"folder\sub-folder\";
S3DirectoryInfo di = new S3DirectoryInfo(s3Client, "myS3BucketName", path);

if (di.Exists)
{
    // directory exists, but reading files throws exception
    IS3FileSystemInfo[] files = di.GetFileSystemInfos();
}
于 2019-09-11T07:13:10.440 回答