2010-07-23 23 views

Respuesta

-1

Sí.

Puede usar un ListObjectsRequest. Use la propiedad Marker y recupere solo 1 elemento.

1

No hay ListObjectRequest, sino un ListObjectsRequest donde no puede especificar la clave. Luego debe examinar todos los objetos para encontrar el que desea. Actualmente estoy buscando, ya que parece que tengo errores de tiempo de espera mientras descargo el archivo. (Si alguien tiene alguna idea de cómo resolverlo, no dude en comentar).

En su lugar, puede probar la Solicitud de lista de piezas si conoce la Id. De carga.

Aparte de eso, no tengo ni idea. Quisiera tener un chat con la persona que escribió la API S3 ...

+0

Eso es un error tipográfico. Actualicé mi respuesta también para dar un poco más de detalles sobre cómo lograrlo. –

5

puede utilizar la clase S3FileInfo y existe el método de esta clase que le ayudará a verificar si el archivo existe sin descargar el archivo. Vea el ejemplo a continuación Utilicé el 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

Pruebe esta solución, funciona para mí.

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

usted está probablemente va a tener que utilizar la API REST a sí mismo, ya que el método sugerido, internamente solo hace exactamente lo mismo (try ... catch en la solicitud)

Cuestiones relacionadas