Sunday, August 4, 2013

Utilizar PHP AWS SDK 2 con Ceph

Como se describió en el artículo pasado, estoy utilizando Ceph como almacén de objetos para proyectos internos.

Al utilizar Ceph nos da la ventaja de poder utilizar herramientas hechas para el Api de Amazon S3 en nuestros proyectos, pero se deben de instanciar de manera especial para que puedan conectarse a su Servicio Compatible de S3.

Nuestro servicio no brinda soporte de acceso a los buckets a través de Subdominios, por lo que al momento de Instanciar, se debe de cambiar el End Point y el estilo de acceso.

Al momentos de Crear la instancia del Cliente

$client = S3Client::factory(array(
    'key'    => '<ACCESS KEY>',
    'secret' => '<SECRET KEY>',
    'base_url' => 'https://objectos.ejemplo.com',
    'ssl.certificate_authority' => false,
    'curl.options' => array(CURLOPT_SSL_VERIFYPEER => 0)
  

));



Al momentos de Crear un Bucket

$result = $client->createBucket(array(
        'Bucket' => $bucket,
        'PathStyle' => TRUE
    ));
Al momentos de Subir Un Archivo

$result = $client->putObject(array(
        'Bucket'     => $bucket,
        'Key'        => $key,
        'SourceFile' => $pathToFile,
        'Metadata'   => array(
            'Foo' => 'abc',
            'Baz' => '123'
        ),
        'PathStyle' => TRUE,
        'ACL'        => CannedAcl::PUBLIC_READ
    ));

No comments:

Post a Comment