2010-07-23 165 views

回答

-1

是的。

您可以使用ListObjectsRequest。使用標記屬性,並只檢索1個元素。

1

沒有ListObjectRequest,而是一個ListObjectsRequest,您無法指定Key。然後,你必須通過所有的對象來找到你想要的。我目前正在尋找它,因爲我似乎在下載文件時出錯。 (如果有人有一些想法如何解決,可隨時發表評論)。

如果您碰巧知道上傳ID,則可以嘗試使用列表部件請求。

除此之外,我不知道。想與S3 api寫個人聊天...

+0

這是一個錯字。我更新了我的答案,以更詳細地說明如何實現它。 – 2016-02-18 21:10:02

5

你可以使用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; 
       } 
    } 
2

試試這個解決方案,它適用於我。

AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, regionEndpoint);  
S3FileInfo s3FileInfo = new S3FileInfo(client, bucketName, fileName); 
if (s3FileInfo.Exists) 
    return true; 
else 
    return false; 
0

你可能不得不使用REST API自己,作爲方法的建議,只是內部不完全一樣的東西(的try ... catch關於請求)

相關問題