Object Storage Service
Object Storage Service (OSS) representa un servicio de almacenamiento de objetos compatible con S3. Luego de crear un usuario de S3 con sus credenciales, podés crear buckets, guardar tus archivos e integrarlo con tus aplicaciones.
S3 Endpoint
Endpoint URL: https://s3.nubi2go.com
Bucket Access Style: Path Style (https://s3.nubi2go.com/bucket-name)
Nota
Por el momento no soportamos Virtual Hosted Access (https://bucket-name.s3.nubi2go.com)
Obtener la Access Key y la Secret Key
- Accedé al Portal
- Seleccioná Object Storage Service
- Obtené las keys
Instalar el AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscli.zip"
unzip awscli.zip
./aws/install
Descargá y corré el AWS CLI MSI para Windows (64-bit): https://awscli.amazonaws.com/AWSCLIV2.msi
O
Abrí un CMD como administrador y corré el siguiente comando:
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
Configurar el AWS CLI
En Linux utilizar la terminal bash y en Windows abrir un CMD. Corré:
aws configure
Operaciones básicas con AWS CLI
- Crear un bucket con nombre “bucket-demo”
aws --endpoint-url=https://s3.nubi2go.com s3api create-bucket --bucket bucket-demo
- Listar los buckets
aws --endpoint-url=https://s3.nubi2go.com s3 ls
- Subir un archivo con nombre “demo.txt” al bucket “bucket-demo” bajo el nombre “prueba.txt”
aws --endpoint-url=https://s3.nubi2go.com s3 cp demo.txt s3://bucket-demo/prueba.txt
-
Para imprimir el contenido del objeto "prueba.txt" por pantalla
aws --endpoint-url=https://s3.nubi2go.com s3 cp s3://bucket-demo/prueba.txt -
-
Subir un archivo en una carpeta llamada “folder”
aws --endpoint-url=https://s3.nubi2go.com s3 cp demo.txt s3://bucket-demo/folder/prueba2.txt
Note
El concepto de carpeta tiene el fin de organizar y agrupar los objetos, simplificando las operaciones al momento de integrarlo en nuestras aplicaciones.
-
Listar los objetos del bucket “bucket-demo”
aws --endpoint-url=https://s3.nubi2go.com s3 ls bucket-demo
- Listar los objetos dentro de la carpeta “folder”
aws --endpoint-url=https://s3.nubi2go.com s3 ls bucket-demo/folder/
- Hacer público el objeto "prueba2.txt"
aws --endpoint-url=https://s3.nubi2go.com s3api put-object-acl --bucket bucket-demo --key folder/prueba2.txt --acl public-read
- Borrar el objeto "prueba.txt"
aws --endpoint-url=https://s3.nubi2go.com s3 rm s3://bucket-demo/prueba.txt
Operaciones recursivas con AWS CLI
- Subir todo el contenido de la carpeta “local-folder” a una nueva carpeta “folder-demo”
aws --endpoint-url=https://s3.nubi2go.com s3 cp --recursive local-folder s3://bucket-demo/folder-demo/
- Listar el contenido del bucket, sus carpetas y subcarpetas
aws --endpoint-url=https://s3.nubi2go.com s3 ls -–recursive bucket-demo
- Borrar todos los objetos de la carpeta “folder-demo2”
aws --endpoint-url=https://s3.nubi2go.com s3 rm –-recursive s3://bucket-demo/folder-demo2
Integraciones en el código
- Instalá el paquete con PIP
pip install boto3
- Construí el cliente
import boto3 access_key = "Y7KBLZLLJH66GQNA0S5N" secret_key = "EkeCwtK9X4aWJ32pJ2jC94fBBePnDQUzROz6Pv5x" n2g_endpoint = "https://s3.nubi2go.com/" s3_client = boto3.client( 's3', aws_access_key_id = access_key, aws_secret_access_key = secret_key, endpoint_url = n2g_endpoint )
- Instalá el paquete con Nuget Package Manager Console.
PM> Install-Package Minio
- Construí el cliente
using Minio; private static MinioClient GetMinioClient() { var n2gEndpoint = "s3.nubi2go.com"; var accessKey = "Y7KBLZLLJH66GQNA0S5N"; var secretKey = "EkeCwtK9X4aWJ32pJ2jC94fBBePnDQUzROz6Pv5x"; return new MinioClient().WithEndpoint(n2gEndpoint) .WithCredentials(accessKey, secretKey) .WithSSL() .Build(); }
- Instalá las dependencias
- Opción 1: Composer (recomendada)
composer require aws/aws-sdk-php
- Opción 2: ZIP File
<?php require '/path/to/aws-autoloader.php';
- Opción 1: Composer (recomendada)
- Construí el cliente
<?php use Aws\S3\S3Client; define('ACCESS_KEY', 'Y7KBLZLLJH66GQNA0S5N'); define('SECRET_KEY', 'EkeCwtK9X4aWJ32pJ2jC94fBBePnDQUzROz6Pv5x'); define('N2G_ENDPOINT', 'https://s3.nubi2go.com'); require __DIR__.'/vendor/autoload.php'; $s3_client = new S3Client([ 'region' => '', 'version' => '2006-03-01', 'endpoint' => N2G_ENDPOINT, 'credentials' => [ 'key' => ACCESS_KEY, 'secret' => SECRET_KEY ], // Set the S3 class to use s3.nubi2go.com/bucket-name 'use_path_style_endpoint' => true ]);
- Instalá las dependencias
- Maven
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.4.1</version> </dependency>
- Gradle
dependencies { implementation("io.minio:minio:8.4.1") }
- Maven
- Descargá la última versión del JAR (https://repo1.maven.org/maven2/io/minio/minio/)
- Construí el cliente
import io.minio.MinioClient; MinioClient s3_client = MinioClient.builder() .endpoint("https://s3.nubi2go.com") .credentials("Y7KBLZLLJH66GQNA0S5N", "EkeCwtK9X4aWJ32pJ2jC94fBBePnDQUzROz6Pv5x") .build();