- Conceptos previos
- Contenedores y objetos
- Manejo de objetos desde swift cli
- Acceso anónimo a objetos
OpenStack Swift
- Swift es un almacén de objetos distribuido y altamente escalable. Se
utiliza para almacenar grandes cantidades de datos de forma segura y
económica.
- La diferencia fundamental entre el almacenamiento de objetos y un
sistema de ficheros tradicional es que los objetos no pueden anidarse y no
se puede asignar a cada objeto permisos y propietarios de forma
individual.
- El almacenamiento de objetos es ideal para almacenar grandes ficheros
multimedia o archivos grandes como copias de seguridad.
- La comunicación con OpenStack Swift se hace mediante una sencilla API
RESTful. Es posible utilizar una API compatible con Amazon S3 si se
desea.
Terminología
- Contenedor: Equivalente a un directorio en un sistema
de ficheros, sirve para organizar objetos, pero tiene una diferencia
fundamental con el directorio: No se pueden anidar contenedores
- Objeto: Elemento que se almacena, suele estar
relacionado con un fichero o archivo, pero además incluye una serie de
metadatos.
- ACL: Utilizada para gestionar los permisos que otros
usuarios pueden tener sobre cada contenedor, no sobre cada objeto. De
momento, las ACLs sólo pueden definirse desde la línea de comandos.
Objetos con Swift CLI
- Utilizar swift desde la línea de comandos: list, stat, download, upload
- Permitir acceso anónimo a un contenedor
Objetos
#Listar contenedores
$ swift list
#Listar objetos dentro de un contenedor
$ swift list CONTENEDOR
# Subir un objeto
$ swift upload CONTENEDOR NOMBRE_FICHERO
# Bajar un objeto
$ swift download CONTENEDOR NOMBRE_OBJETO
# Actualizar metadatos de contenedor u objetos
$ swift post ARGUMENTOS
Permisos
#Hacer público un contenedor
$ swift post -r '.r:*' CONTENEDOR
#Permiter a otro usuario acceder a los objetos del contenedor
$ swift post -r PROYECTO:USUARIO CONTENEDOR
# Para permitir obtener la lista de objetos de un contenedor
$ swift post -r '.r:*,.rlistings' CONTENEDOR