Carga de datos
Después de organizar el almacenamiento en grupos, es hora de añadir algunos objetos cargando los datos.
En función de cómo desee utilizar el almacenamiento, existen diferentes formas de obtener datos en el sistema. Un científico de datos tiene unos pocos archivos grandes que se utilizan para realizar análisis, un administrador de sistemas necesita mantener las copias de seguridad de la base de datos sincronizadas con los archivos locales y un desarrollador está escribiendo software que necesita leer y escribir millones de archivos. Cada uno de estos casos de ejemplo requiere un método diferente de ingestión de datos.
Es posible que algunas aplicaciones quieran limitar a un usuario o a un ID de servicio únicamente a la carga de datos, sin que tengan acceso a la lectura de datos en un bucket. Esto es posible mediante el rol de IAM del grabador de objetos.
Utilización de la consola
Generalmente, la utilización de la consola basada en web no es la forma más común de utilizar Object Storage. Los objetos se limitan a 200 MB y el nombre de archivo y la clave son idénticos. Se pueden cargar varios objetos al mismo tiempo, y, si el navegador permite varias hebras, cada objeto se cargará utilizando varias partes en paralelo. La transferencia de alta velocidad de Aspera proporciona soporte para tamaños de objeto mayores y un rendimiento mejorado (en función de los factores de red).
Utilización de una herramienta compatible
Algunos usuarios desean utilizar un programa de utilidad autónomo para interactuar con su almacenamiento. Puesto que la API de Cloud Object Storage da soporte a las operaciones de la API S3 más utilizadas, muchas herramientas compatibles con S3 también se pueden conectar a Object Storage utilizando las credenciales HMAC.
Algunos ejemplos incluyen exploradores de archivos como Cyberduck o Transmit, programas de utilidad de copia de seguridad como Cloudberry y Duplicati, programas de utilidad de línea de mandatos como s3cmd o Minio Client y muchos otros. También puede buscar en el Catálogo IBM Cloud servicios de terceros que le permitan trasladar datos a Cloud Object Storage, por ejemplo, Lyve Data Transfer Services.
Utilización de la API
La mayoría de aplicaciones programáticas de Object Storage utilizan un SDK (por ejemplo, Java, node.jso Python) o la API de Cloud Object Storage. Normalmente los objetos se cargan en varias partes; la clase Transfer Manager configura el tamaño y el número de las partes.
Solicitudes condicionales
Al realizar una solicitud para leer o escribir datos, es posible establecer condiciones en esa solicitud para evitar operaciones innecesarias. Esto se consigue utilizando los siguientes encabezados « HTTP » precondicionales: If-Match,
If-None-Match, If-Modified-Since y If-Unmodified-Since.
En general, es preferible utilizar If-Match , ya que la granularidad del valor Last-Modified es solo de segundos y podría no ser suficiente para evitar condiciones de carrera en algunas
aplicaciones.
Utilización de If-Match
En una solicitud PUT, HEAD o GET de un objeto, el encabezado « If-Match » comprueba si el valor « Etag » proporcionado (el hash MD5 del contenido
del objeto) coincide con el valor « Etag » proporcionado. Si este valor coincide, la operación continúa. Si la coincidencia falla, el sistema devuelve un error « 412 Precondition Failed ».
If-Match se utiliza con más frecuencia con métodos de cambio de estado (por ejemplo, POST, PUT, DELETE) para evitar sobreescrituras accidentales cuando varios agentes de usuario pueden estar actuando en paralelo en el mismo recurso (es decir, para evitar el problema de "actualización perdida").
Utilización de If-None-Match
En una solicitud PUT, HEAD o GET de un objeto, el encabezado « If-None-Match » comprueba si el valor « Etag » proporcionado (el hash MD5 del
contenido del objeto) coincide con el valor « Etag » proporcionado. Si este valor no coincide, la operación continúa. Si la coincidencia es correcta, el sistema devuelve un error « 412 Precondition Failed » en una
solicitud PUT y un « 304 Not Modified » en una solicitud GET o HEAD.
If-None-Match se utiliza principalmente en solicitudes GET condicionales para habilitar actualizaciones eficaces de la información almacenada en memoria caché con una cantidad mínima de sobrecarga de transacciones. Cuando un cliente desea actualizar una o más respuestas almacenadas que tienen etiquetas de entidad, el cliente DEBE generar un campo de cabecera If-None-Match que contenga una lista de dichas etiquetas de entidad al realizar una solicitud GET; esto permite a los servidores destinatarios enviar una respuesta 304 (No modificada) para indicar cuándo una de esas respuestas almacenadas coincide con la representación seleccionada.
Utilización de If-Modified-Since
En una solicitud HEAD o GET de un objeto, el encabezado « If-Modified-Since » comprueba si el valor « Last-Modified » del objeto (por ejemplo,
Sat, 14 March 2020 19:43:31 GMT) es más reciente que el valor proporcionado. Si el objeto se ha modificado, la operación continúa. Si el objeto no se ha modificado, el sistema devuelve un « 304 Not Modified ».
If-Modified-Since se utiliza normalmente para dos fines distintos: 1) para permitir actualizaciones eficaces de una representación en memoria caché que no tiene una etiqueta de entidad y 2) para limitar el ámbito de un cruce web a los recursos que han cambiado recientemente.
Utilización de If-Unmodified-Since
En una solicitud PUT, HEAD o GET de un objeto, el encabezado « If-Unmodified-Since » comprueba si el valor « Last-Modified » del objeto (por
ejemplo, Sat, 14 March 2020 19:43:31 GMT) es igual o anterior al valor proporcionado. Si el objeto no se ha modificado, la operación continúa. Si el valor de « Last-Modified » es más reciente, el sistema devuelve
un error « 412 Precondition Failed » en una solicitud PUT y un error « 304 Not Modified » en una solicitud GET o HEAD.
If-Unmodified-Since se utiliza con más frecuencia con métodos de cambio de estado (por ejemplo, POST, PUT, DELETE) para evitar sobregrabaciones accidentales cuando varios agentes de usuario pueden estar actuando en paralelo en un recurso que no proporciona etiquetas de entidad con sus representaciones (es decir, para evitar el problema de "actualización perdida"). También se puede utilizar con métodos seguros para abortar una solicitud si la representación seleccionada no coincide con una ya almacenada (o parcialmente almacenada) de una solicitud anterior.
Buscar y filtrar objetos
Utiliza la consola « Object Storage » para buscar y filtrar objetos por nombre, tamaño, fecha o extensión. Para obtener más información, consulta « Buscar y filtrar objetos en la interfaz de usuario ».