Tengo un archivo de Excel dentro de s3. Dado que diferentes programas lo leen y escriben, necesito garantizar que cada uno de ellos está escribiendo en la versión que leen.
S3 solo garantiza la coherencia de lectura después de la escritura para los objetos recién creados y la coherencia final para sobrescribir y eliminar objetos. Si su archivo de Excel es lo suficientemente pequeño (menos de 400 kb), puede almacenarlo en un atributo binario de un elemento de DynamoDB y usar actualizaciones condicionales en un atributo de versión para garantizar la coherencia de lectura tras escritura para el archivo. De lo contrario, si el archivo tiene más de 400 kb, puede cargar cada versión del archivo en una nueva clave en s3 y luego rastrear la URL de s3 hasta la última versión del archivo en un elemento de DynamoDB con versión.
Esto no es posible con S3.
Específicamente, es imposible determinar de manera concluyente y autorizada si la versión actual visible para usted no está ya en proceso de sobrescritura, o puede haber sido sobreescrita muy recientemente... porque la sobrescritura en curso no altera la versión actual hasta que está completo o poco tiempo después , debido al modelo de consistencia eventual de sobrescrituras.
Esto es cierto incluso cuando el control de versiones del depósito no está habilitado. A veces es posible sobrescribir un objeto y seguir descargando la versión anterior durante un breve tiempo después de que se complete la sobrescritura.
GET , HEAD y ListObjects son eventualmente consistentes.