Cómo recuperar una versión concreta de un fichero alojado en un bucket S3 de AWS.
Veamos cómo recuperar una versión concreta de un fichero alojado en un bucket S3 de AWS.
En este ejemplo, el bucket se llama "blai-1".
Primero de todo, debemos tener habilitado o habilitar el versionado:
Imaginemos que tenemos 3 ficheros en el bucket "blai-1":
Borramos file1.txt en local:
Hacemos un sync de archivos con el flag delete (borra en el bucket aquello que no exista en local):
Tras la instrucción anterior, listamos los ficheros presentes en el bucket:
Observamos que file1.txt ya no existe.
De repente necesitamos el file1.txt. Listamos sus versiones:
Recuperamos la versión M3YMFwyIciILCfa.VX3pRdlLJkheUjy1 del fichero file1.txt, con fecha 2021-11-24T11:56:31.000Z:
Listamos los ficheros en local:
Sincornizamos los ficheros hacia el bucket:
Listamos los ficheros del bucket:
Tras el sync, file1.txt vuelve a estar presente.
Veamos cómo recuperar una versión concreta de un fichero alojado en un bucket S3 de AWS.
En este ejemplo, el bucket se llama "blai-1".
Primero de todo, debemos tener habilitado o habilitar el versionado:
[ec2-user@ip-10-5-0-143 ~]$ aws s3api put-bucket-versioning --bucket s3-blai-1 --versioning-configuration Status=Enabled
Imaginemos que tenemos 3 ficheros en el bucket "blai-1":
[ec2-user@ip-10-5-0-143 ~]$ aws s3 ls s3://s3-blai-1/files/
2021-11-24 11:56:31 30318 file1.txt
2021-11-24 11:56:32 43784 file2.txt
2021-11-24 11:56:32 96675 file3.txt
Borramos file1.txt en local:
[ec2-user@ip-10-5-0-143 ~]$ sudo rm files/file1.txt
sudo rm files/file1.txt
Hacemos un sync de archivos con el flag delete (borra en el bucket aquello que no exista en local):
[ec2-user@ip-10-5-0-143 ~]$ aws s3 sync files s3://s3-blai-1/files/ --delete
delete: s3://s3-blai-1/files/file1.txt
Tras la instrucción anterior, listamos los ficheros presentes en el bucket:
[ec2-user@ip-10-5-0-143 ~]$ aws s3 ls s3://s3-blai-1/files/
2021-11-24 11:56:32 43784 file2.txt
2021-11-24 11:56:32 96675 file3.txt
Observamos que file1.txt ya no existe.
De repente necesitamos el file1.txt. Listamos sus versiones:
[ec2-user@ip-10-5-0-143 ~]$ aws s3api list-object-versions --bucket s3-blai-1 --prefix files/file1.txt
{
"DeleteMarkers": [
{
"Owner": {
"DisplayName": "aws038351",
"ID": "2a6f0ac58291262d92b44b112cda554a8cf030cd5d4d742a7b60af5a5b89fd86"
},
"IsLatest": true,
"VersionId": "Nd1QvuJY56xi7nFHSC2ej_3nvm7xvw1u",
"Key": "files/file1.txt",
"LastModified": "2021-11-24T11:57:35.000Z"
}
],
"Versions": [
{
"LastModified": "2021-11-24T11:56:31.000Z",
"VersionId": "M3YMFwyIciILCfa.VX3pRdlLJkheUjy1",
"ETag": "\"b76b2b775023e60be16bc332496f8409\"",
"StorageClass": "STANDARD",
"Key": "files/file1.txt",
"Owner": {
"DisplayName": "aws038351",
"ID": "2a6f0ac58291262d92b44b112cda554a8cf030cd5d4d742a7b60af5a5b89fd86"
},
"IsLatest": false,
"Size": 30318
}
]
}
Recuperamos la versión M3YMFwyIciILCfa.VX3pRdlLJkheUjy1 del fichero file1.txt, con fecha 2021-11-24T11:56:31.000Z:
[ec2-user@ip-10-5-0-143 ~]$ sudo aws s3api get-object --bucket s3-blai-1 --key files/file1.txt --version-id M3YMFwyIciILCfa.VX3pRdlLJkheUjy1 files/file1.txt
{
"AcceptRanges": "bytes",
"ContentType": "text/plain",
"LastModified": "Wed, 24 Nov 2021 11:56:31 GMT",
"ContentLength": 30318,
"VersionId": "M3YMFwyIciILCfa.VX3pRdlLJkheUjy1",
"ETag": "\"b76b2b775023e60be16bc332496f8409\"",
"Metadata": {}
}
Listamos los ficheros en local:
[ec2-user@ip-10-5-0-143 ~]$ ls -la
2022-01-26 11:56:31 30318 file1.txt
2021-11-24 11:56:32 43784 file2.txt
2021-11-24 11:56:32 96675 file3.txt
Sincornizamos los ficheros hacia el bucket:
[ec2-user@ip-10-5-0-143 ~]$ aws s3 sync files s3://s3-blai-1/files/
upload: files/file1.txt to s3://s3-blai-1/files/file1.txt
Listamos los ficheros del bucket:
[ec2-user@ip-10-5-0-143 ~]$ aws s3 ls s3://s3-blai-1/files/
2022-01-26 11:00:18 30318 file1.txt
2021-11-24 11:56:32 43784 file2.txt
2021-11-24 11:56:32 96675 file3.txt
Tras el sync, file1.txt vuelve a estar presente.