如何获取特定对象的最新版本和某些先前版本之间的版本列表

时间:2019-05-02 07:52:24

标签: powershell amazon-s3 version

我目前正在尝试使用适用于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-S3VersionKeyMarker来使用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列表的正确方法是什么? 我只是想念一些基本的东西吗?

0 个答案:

没有答案