什么是检查S3对象是否存在的最佳方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是检查S3对象是否存在的最佳方法?相关的知识,希望对你有一定的参考价值。

目前,我制作一个GetObjectMetaDataRequest,如果GetObjectMetaDataResponse抛出异常意味着该对象不存在。有没有更好的方法来检查文件是否存在而不下载文件。

答案

你可以使用这个类的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;
                
    
另一答案

尝试这个解决方案,它适合我。

AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, regionEndpoint);       
S3FileInfo s3FileInfo = new S3FileInfo(client, bucketName, fileName);
s3FileInfo.Exists ? return true:return false;
另一答案

没有ListObjectRequest,而是ListObjectsRequest,您无法在其中指定Key。然后,您必须浏览所有对象才能找到所需的对象。我目前正在寻找它,因为我似乎在下载文件时得到了时间错误。 (如果有人知道如何解决,请随意评论)。

如果您碰巧知道上传ID,则可以尝试列出部件请求。

除此之外,我不知道。想与编写S3 api的人聊聊...

另一答案

你可能不得不自己使用REST API,正如方法所建议的那样,内部只是做同样的事情(尝试...抓住请求)

另一答案

是。

您可以使用ListObjectsRequest。使用Marker属性,仅检索1个元素。

以上是关于什么是检查S3对象是否存在的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

检查电子邮件是不是存在的最佳方法

检查属性是不是存在的最佳方法是啥? [复制]

如果路径已知,检查 Firestore 记录是不是存在的最佳方法是啥?

检查sql server ce中是不是存在项目的最佳方法?

检查 C 中是不是存在文件的最佳方法是啥?

检查 C 中是不是存在文件的最佳方法是啥?