答案 0 :(得分:9)
你可以使用这个类的S3FileInfo类和Exists方法来检查文件是否存在而不下载文件。请参阅下面的示例我使用了AWSSDK 3.1.6 .net(3.5):
public static bool ExistsFile()
{
BasicAWSCredentials basicCredentials = new BasicAWSCredentials("my access key", "my secretkey");
AmazonS3Config configurationClient = new AmazonS3Config();
configurationClient.RegionEndpoint = RegionEndpoint.EUCentral1;
try
{
using (AmazonS3Client clientConnection = new AmazonS3Client(basicCredentials, configurationClient))
{
S3FileInfo file = new S3FileInfo(clientConnection, "mybucket", "FolderNameUniTest680/FileNameUnitTest680");
return file.Exists;//if the file exists return true, in other case false
}
}
catch(Exception ex)
{
return false;
}
}
答案 1 :(得分:4)
试试这个解决方案,它对我有用。
AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, regionEndpoint);
S3FileInfo s3FileInfo = new S3FileInfo(client, bucketName, fileName);
s3FileInfo.Exists ? return true:return false;
答案 2 :(得分:1)
没有ListObjectRequest,而是ListObjectsRequest,您无法指定Key。然后,您必须浏览所有对象才能找到所需的对象。我目前正在寻找它,因为我似乎在下载文件时得到了时间错误。 (如果有人知道如何解决,请随意评论)。
如果您碰巧知道上传ID,则可以尝试列出部件请求。
除此之外我不知道。想和编写S3 api的人聊聊......
答案 3 :(得分:1)
你可能不得不自己使用REST API,正如方法所建议的那样,内部只是做同样的事情(尝试...抓住请求)
答案 4 :(得分:-1)
是
您可以使用ListObjectsRequest。使用Marker属性,只检索1个元素。