2012-03-01 13 views
23

Estaba buscando muestras de Amazon S3, y las muestras están ahí para inserciones/eliminaciones ...¿Puedo actualizar un objeto existente de Amazon S3?

Pero quiero actualizar una burbuja existente con datos recientes. Básicamente, el contenido es un archivo de texto, y el texto ha sido modificado, quiero que el objeto S3 almacene el nuevo contenido de texto.

¿Cómo hago esto en Java?

Respuesta

24

La actualización de un objeto existente en Amazon S3 no se diferencia de la creación en primer lugar, es decir, se usa la misma operación PUT Object para cargar el objeto y sobrescribe el existente (si no está protegido por otros medios) , por ejemplo a través Using Bucket Policies o Object Versioning)

puede encontrar un ejemplo de código completo en Upload an Object Using the AWS SDK for Java, la parte principal se reduce a:

AmazonS3 s3client = new AmazonS3Client(new PropertiesCredentials(
     S3Sample.class.getResourceAsStream(
       "AwsCredentials.properties"))); 
try { 
    System.out.println("Uploading a new object to S3 from a file\n"); 
    File file = new File(uploadFileName); 
    s3client.putObject(new PutObjectRequest(
          bucketName, keyName, file)); 

} catch (AmazonServiceException ase) { 
    System.out.println("Caught an AmazonServiceException, which " + 
      "means your request made it " + 
      "to Amazon S3, but was rejected with an error response" + 
      " for some reason."); 
    // ... error handling based on exception details 
} 
+9

lo Steffen también está diciendo es que no hay una actualización 'burbuja parcial'. Debe cargar la copia nueva completa del archivo. –