Versioning des godets Amazon S3 est sympa, mais je ne vois aucun moyen facile de comparer des versions d'un fichier - soit via la console, soit via toute autre application que j'ai trouvée.
S3Browser semble avoir le meilleur support de version , mais pas de comparaison. P>
est là un moyen de comparer les versions d'un fichier sur S3 sans télécharger les deux versions et de les comparer manuellement? P>
- p>
Modifier : Je viens de commencer à penser que certaines automatisations de base ne devraient pas être trop difficiles, voir l'extraits ci-dessous. La question reste cependant: y a-t-il un outil qui le supporte correctement? Ce script est peut-être bon pour moi, mais pas pour les utilisateurs non-devin. P>
#!/bin/bash # s3-compare-last-versions.sh if [[ $# -ne 2 ]]; then echo "Usage: `basename $0` <bucketName> <fileKey> " exit 1 fi bucketName=$1 fileKey=$2 latestVersionId=$(aws s3api list-object-versions --bucket $bucketName --prefix $fileKey --max-items 2 | json Versions[0].VersionId) previousVersionId=$(aws s3api list-object-versions --bucket $bucketName --prefix $fileKey --max-items 2 | json Versions[1].VersionId) aws s3api get-object --bucket $bucketName --key $fileKey --version-id $latestVersionId $latestVersionId".js" aws s3api get-object --bucket $bucketName --key $fileKey --version-id $previousVersionId $previousVersionId".js" diff $latestVersionId".js" $previousVersionId".js"
3 Réponses :
Vous ne pouvez pas afficher le contenu du fichier via S3, vous ne pouvez donc pas comparer le contenu des fichiers via S3. Vous devriez télécharger les différentes versions, puis utiliser un outil tel que diff code> pour les comparer. P>
Merci d'avoir répondu! En effet, c'est ce que j'ai fait jusqu'à présent. La question est la suivante: comment cela peut-il être fait automatiquement?
Vous pouvez certainement écrire un script qui utilise l'AWS CLI ou un programme qui utilise le SDK AWS, pour effectuer cette fonction si vous avez besoin de cela régulièrement.
Ah, en effet :) ... c'est ce que je viens de faire!
Notez que demander des recommandations d'outils tiers est considérée comme étant spécifique sur ce site et fera la fermeture de votre question. Demander des choses comme ça n'est pas considérée comme une programmation.
J'ai écrit un script Bash pour télécharger les deux dernières versions d'un objet et le comparer à Colordiff. J'ai trébuché sur ces questions après l'avoir écrit. Pensé que je pourrais la partager ici si quelqu'un voulait l'utiliser. Voici le lien vers celui-ci P> https://gist.github.com/mohamedajiullah/3edc88d314291be48d314291be48d7f p> Remarque: c'est à peu près la même chose que le script que le script est-il utile Créé sauf qu'il utilise JQ for Json Ansing et Colordiff pour montrer la différence avec différentes couleurs comme dans Git Diff. P> Je crée une application de bureau basée sur des électrons.js pour faire exactement cela. Il est actuellement en développement mais il peut être utilisé. Je souhaite la bienvenue aux contributions forts> p> https://github.com/moheamedajiullah/s3_Object_version_comparator < / a> p> p>
Vous pouvez utiliser Megaspardiff une source ouverte aussi qui compare plusieurs types de données de données, y compris S3
https: // github.com/finraos/megasparkdiff p>
La paire ci-dessous reviendra inleftbutnotinRight et inrightbutnotinLeft comme DataFrames que vous pouvez enregistrer sous forme de fichiers ou vous pouvez examiner les données via le code. P>
SparkFactory.initializeSparkContext(); AppleTable leftAppleTable = SparkFactory.parallelizeTextSource("S3://file1","table1"); AppleTable rightAppleTable = SparkFactory.parallelizeTextSource("S3://file2","table2"); Pair<Dataset<Row>, Dataset<Row>> resultPair = SparkCompare.compareAppleTables(leftAppleTable, rightAppleTable); resultPair.getLeft().show(100); SparkFactory.stopSparkContext();