2010-07-23 5 views

Répondre

-1

Oui.

Vous pouvez utiliser une ListObjectsRequest. Utilisez la propriété Marqueur et récupérez seulement 1 élément.

1

Il n'y a pas de ListObjectRequest, mais une ListObjectsRequest dans laquelle vous ne pouvez pas spécifier la clé. Vous devez ensuite parcourir tous les objets pour trouver celui que vous voulez. Je suis actuellement en train d'y jeter un coup d'œil car il me semble que des erreurs de temporisation sont survenues lors du téléchargement du fichier. (Si quelqu'un a une idée de comment résoudre cela, n'hésitez pas à commenter).

Vous pouvez essayer la demande de listes de pièces si vous connaissez l'identifiant de téléchargement.

À part ça, je n'en ai aucune idée. Voudrait avoir une conversation avec la personne qui a écrit l'api S3 ...

+0

C'est une faute de frappe. J'ai également mis à jour ma réponse pour donner un peu plus de détails sur la façon de l'atteindre. –

5

vous pouvez utiliser la classe S3FileInfo et Exists méthode de cette classe, il vous aidera à vérifier si le fichier existe sans télécharger le fichier. Voir l'exemple ci-dessous J'ai utilisé le 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

Essayez cette solution, cela fonctionne pour moi.

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

Vous allez probablement devoir utiliser le reste vous API, comme la méthode proposée, ne interne exactement la même chose (try ... catch à la demande)

Questions connexes