services putobject para example aws amazon-web-services amazon-s3 aws-php-sdk

amazon web services - putobject - Cómo copiar objetos S3 entre regiones con Amazon AWS PHP SDK?



install sdk aws php (2)

El cubo de región diferente también podría ser una cuenta diferente. Lo que otros habían estado haciendo era copiar de una cubeta y guardar los datos temporalmente de forma local, luego cargar a diferentes cubos con diferentes credenciales. (si tiene dos cubos regionales con diferentes credenciales).

La actualización más reciente de la herramienta CLI le permite copiar de un depósito a otro si está dentro de la misma cuenta. Usando algo como lo que Çağatay Gürtürk mencionó.

Estoy intentando copiar objetos Amazon AWS S3 entre dos cubos en dos regiones diferentes con Amazon AWS PHP SDK v3. Este sería un proceso de una sola vez, por lo que no necesito cross-region replication . copyObject() usar copyObject() pero no hay forma de especificar la región.

$s3->copyObject(array( ''Bucket'' => $targetBucket, ''Key'' => $targetKeyname, ''CopySource'' => "{$sourceBucket}/{$sourceKeyname}", ));

Fuente: http://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectUsingPHP.html


No necesita especificar regiones para esa operación. Descubrirá la región del cubo de destino y lo copiará.

Pero es posible que tenga razón, porque en la CLI de AWS existen atributos de región de origen y de región de destino que no existen en PHP SDK. Para que pueda cumplir la tarea de esta manera:

  1. Crea un cubo intermedio en la región de origen.
  2. Crea el cubo en la región objetivo.
  3. Configure la replicación desde el segmento intermedio para dirigirse a uno.
  4. En la regla de caducidad de conjuntos de cubetas provisionales, los archivos se eliminarán después de un corto período de tiempo automáticamente del depósito intermedio.
  5. Copie los objetos del depósito de origen a un cubo intermedio usando PHP SDK.
  6. Todos sus objetos también se copiarán en otra región.
  7. Puede eliminar el cubo provisional un día después.

O use solo cli y use este único comando:

aws s3 cp s3://my-source-bucket-in-us-west-2/ s3://my-target-bucket-in-us-east-1/ --recursive --source-region us-west-2 --region us-east-1