簡體   English   中英

適用於 Powershell 的 AWS 工具,版本差異

[英]AWS Tools for Powershell, version differences

我一直在測試一個較舊的AWS工具使用安裝AWSToolsAndSDKForNet_sdk-3.3.398.0_ps-3.3.390.0_tk-1.14.4.1.msi和新的安裝使用AWSToolsAndSDKForNet_sdk-3.5.2.0_ps-4.1.0.0_tk-1.14.5.0.msi 我用來測試的代碼是

Set-AWSCredential -AccessKey:$ACCESSKEY -SecretKey:$SECRETKEY -StoreAs:default

$items = Get-S3Object -BucketName:$BUCKETNAME -Region:'eu-west-1' -Key:'revit/2020'
Write-Host "$($items.Length) items"

$count = 1
foreach ($item in $items) {
    Write-Host "$count $($item.key)"
    $count ++
}

我看到了非常不同的行為,無法弄清楚原因。 在 3.3 中,代碼按預期工作,我最終得到了存儲桶和密鑰中的文件列表。 性能相當不錯,需要一點時間,但我可能在“子文件夾”中有大約 5000 個文件。 當我用 4.1 運行它時,它需要 3-5 倍的時間並且什么都不返回。 幫助似乎也有點不同。 首次運行get-help Get-S3Object -detailed需要長達 10 分鍾才能運行,CPU、內存和磁盤訪問的利用率通常為 99%。 第二次運行非常快。 3.3 什么都不做。

那么,這個當前版本的 AWS Tools for Powershell 還沒有准備好迎接黃金時段嗎? 我對AWS 工具 4.1 性能的搜索一無所獲。 就其價值而言,我使用 MSI 安裝程序是因為我需要安裝才能真正一致地工作,而 NuGet 方法在許多生產工作站上都​​存在很大問題。 但如果有另一種選擇,我很想看看。 主要問題是我最終需要進行安裝並立即加載模塊並使用 AWS。 我還沒有使用基於 MSI 的安裝,但那是針對不同的線程。

看起來他們改變了Get-S3Object的結果。 您需要添加-Select S3Objects.Key以獲得您正在尋找的結果(或只是-select * )。 以下是更改說明的摘錄:

大多數 cmdlet 都有一個新參數:-Select。 Select 可用於更改 cmdlet 返回的值。 例如,Get-S3Object 使用的服務 API 返回 ListObjectsResponse 對象,但 cmdlet 配置為僅返回 S3Objects 字段。 現在您可以指定 -Select * 以接收完整的 API 響應。 您還可以指定嵌套結果屬性的路徑,例如 -Select S3Objects.Key。 在某些情況下,返回 cmdlet 參數可能很有用,這可以通過 -Select ^ParameterName 實現。

通過轉到更改說明並為Get-S3Object執行 CTRL+F找到 希望這可以為您解決!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM