我正在使用适用于.NET的AWS SDk,我试图从S3存储桶中获取目录信息。
以下代码有效,我可以在根folder
中获得文件
// path: folder
S3DirectoryInfo di = new S3DirectoryInfo(s3Client, "myS3BucketName", "folder");
if (di.Exists)
{
IS3FileSystemInfo[] files = di.GetFileSystemInfos();
}
现在我尝试相同的代码,并在sub-folder
下查询一个folder
,该代码获取目录信息...但是在读取文件内容时,它会引发异常
// 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);
答案 0 :(得分: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();
}