This topic contains 1 reply, has 2 voices, and was last updated by
August 15, 2019 at 5:19 pm #170896ParticipantTopics: 1Replies: 0Points: 11Rank: Member
I'm completely new to powershell and don't have much experience working on Windows servers so please forgive me if this is a simple problem. The server has the AWS CLI installed and I need to sort the ls command by date and get the most recent file in the bucket. The command
aws s3 ls s3://mybucket/myfolder/outputs a listing like so with no headers:
2018-01-18 09:04:02 0
2018-01-18 11:00:33 7428 review-logo-btj-100.jpg
2018-01-18 10:58:36 5860 review-logo-dilve-100.jpg
I've tried piping the output to
Sort Date -Descendingbut that has no affect on the output. I've managed to successfully isolate the datetime part with a regex and "select-string" but I still don't seem to be able to sort it properly.
All that said, I was hoping somebody could help me find the best way to get the most recent file from a listing like that.
Thanks in advance!
August 16, 2019 at 8:18 pm #171208ParticipantTopics: 0Replies: 2Points: 6Rank: Member
My first suggestion would be to install the AWS PowerShell module. This will give you the ability to work with AWS services as PowerShell objects. Your task could then be completed like this:
Get-S3Object -BucketName bucketname | sort-object lastmodified | select -Last 1 | format-table -AutoSize -Property key,lastmodified
This gets the contents of the bucket, sorts by the 'lastmodified' date, and selects the last entry. For demonstration I then display it as a table.
If you cannot load the AWS module, then maybe have the AWS CLI save as JSON and import the JSON in PowerShell. Otherwise you are stuck with having to manipulate the AWS output as text in PowerShell, which just makes everything harder.
You must be logged in to reply to this topic.