我目前正在尝试使用适用于PowerShell的AWS工具(https://docs.aws.amazon.com/powershell/latest/reference/index.html)从S3中提取文件。
我的问题是关于如何获取最新版本和较旧版本之间的所有版本的列表(进一步,然后我将拉下对象的特定版本以对其进行处理)。
找出最新版本很容易:
(Get-S3ObjectMetadata -BucketName $S3Bucket -Key $file_to_import).VersionId
获取对象的所有可用版本的列表也很容易:
(Get-S3Version -BucketName $S3Bucket -Prefix $file_to_import).Versions
这给了我类似的东西:
BucketName Key IsLatest VersionId ---------- --- -------- --------- fake_bucket_name test.file True JNvMus2dzvwbHTALXOiROE6eYK2CbQkN fake_bucket_name test.file False .pLXJQtvTDLn2kGVyzxXLwHo06DM.eOK fake_bucket_name test.file False E_Pldt5QUK69Bkqi4Vzea5YElVITu5vW fake_bucket_name test.file False qfHFNcyUPwgQX4Vj.YRUyvKR4iC1LHDN fake_bucket_name test.file False .Oq9yR3tmY4xeA2sKcbhO5fhbNgTHN_5 fake_bucket_name test.file False IqkH06Z17rJy9b43WKwbdlQmYTIKnQCi fake_bucket_name test.file False zpd4vZJaP9d8sU2MgOBliDZg5g7dpQI3 fake_bucket_name test.file False aUkj3nf_LHzvF6iJFi6MDP8yN5yZx4s4 fake_bucket_name test.file False voXfE2Yucyfk3lYQxuEHoF531i27rqiw fake_bucket_name test.file False vpHy533Js8gTBwmVF5Gwfx8gzRHJmuGO fake_bucket_name test.file False rCLVePiKJ_kG4m99YK6T58OOWPgXYqc6 fake_bucket_name test.file False PQ5pPgMep3qmAhXnApl792OTzOgtEBJp fake_bucket_name test.file False 8x84RYnc7S5Do0DOZqSC2L42q06yYoSl fake_bucket_name test.file False LbyQxsfN..p6VmJARs3GZ7aF.Mzh_Q9C fake_bucket_name test.file False LALPxyI5myYQbnWXv5XSPdnqpDMZp5E8
我现在遇到的问题是如何仅获取最新版本和特定先前版本之间的列表。
说,我知道我需要比VersionId qfHFNcyUPwgQX4Vj.YRUyvKR4iC1LHDN 较新的东西。
所以,我需要一个这样的列表:
BucketName Key IsLatest VersionId ---------- --- -------- --------- fake_bucket_name test.file True JNvMus2dzvwbHTALXOiROE6eYK2CbQkN fake_bucket_name test.file False .pLXJQtvTDLn2kGVyzxXLwHo06DM.eOK fake_bucket_name test.file False E_Pldt5QUK69Bkqi4Vzea5YElVITu5vW
我尝试再次使用Get-S3Version
和KeyMarker
来使用VersionIdMarker
命令:
(Get-S3Version -BucketName $S3Bucket -KeyMarker $file_to_import -VersionIdMarker $last_processed_version -Prefix $file_to_import).Versions
但这只会给我所有版本之前,而不是 AFTER 用作VersionIdMarker的VersionId。
结果看起来更像这样,与所需要的完全相反:
BucketName Key IsLatest VersionId ---------- --- -------- --------- fake_bucket_name test.file False .Oq9yR3tmY4xeA2sKcbhO5fhbNgTHN_5 fake_bucket_name test.file False IqkH06Z17rJy9b43WKwbdlQmYTIKnQCi fake_bucket_name test.file False zpd4vZJaP9d8sU2MgOBliDZg5g7dpQI3 fake_bucket_name test.file False aUkj3nf_LHzvF6iJFi6MDP8yN5yZx4s4 fake_bucket_name test.file False voXfE2Yucyfk3lYQxuEHoF531i27rqiw fake_bucket_name test.file False vpHy533Js8gTBwmVF5Gwfx8gzRHJmuGO fake_bucket_name test.file False rCLVePiKJ_kG4m99YK6T58OOWPgXYqc6 fake_bucket_name test.file False PQ5pPgMep3qmAhXnApl792OTzOgtEBJp fake_bucket_name test.file False 8x84RYnc7S5Do0DOZqSC2L42q06yYoSl fake_bucket_name test.file False LbyQxsfN..p6VmJARs3GZ7aF.Mzh_Q9C fake_bucket_name test.file False LALPxyI5myYQbnWXv5XSPdnqpDMZp5E8
从过去的VersionId开始获取最近的VersionId列表的正确方法是什么? 我只是想念一些基本的东西吗?