Cómo recuperar una versión concreta de un fichero alojado en un bucket S3 de AWS.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrDFxQJyKUvj7iuRYKTEXZVYQW1hfl-LAzVu-Evrh1nIL4Lzy5_kYci7FrFz51OScojbPqMfdC74cvw28Dn_IOX5bu2VFz7zA_E5FWvfy_gvqK796k2yLzSDkRXcLhywXobgj0yGOdBOM/s1600/0.png)
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.
0 comentarios:
Publicar un comentario