Initiate Restore from Deep Glacier, but file doesn't become available

0

I am trying to do a test restore of a file which was uploaded to S3 and moved to Deep Glacier through a LifeCycle Rule.
I go into the S3 bucket, find my file (which is in Deep Glacier), and select "Initiate Restore". I then get the message that the restore has been initiated.
But after that, nothing seems to happen. I've waited for over a week and I see no indication in the S3 Management page that the restore is in process or has been completed. And when I use the Read-S3Object Powershell command I get a message "The operation is not valid for the object's storage class". It seems like the object didn't get restored from Deep Glacier back into S3 for me to download.
One note: These files are encrypted so I need to do the actual restore from this Powershell command using the ServerSideEncryptionCustomerMethod of AES256 and the ServerSideEncryptionCustomerProvidedKey parameters.
What am I doing wrong? I've followed this process in the past and while I never saw any indication of when the file was ready to be download from S3, it would always eventually work.
Thanks!

1288333
asked 3 years ago568 views
2 Answers
0

After talking with AWS Support, here is what I found:

Because the object is encrypted with a customer provided key, I can't see the status of the restore from Deep Glacier to S3 in the AWS Management Webpage. So I was told to use the following powershell command:

Get-S3ObjectMetadata -BucketName <bucket> -key '<S3 folder/S3 filename>' -ServerSideEncryptionCustomerMethod AES256 -ServerSideEncryptionCustomerProvidedKey "123456"

Or, I could have used the AWS command (adding the argument for providing the encryption key):
aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

With either command, you can see that RestoreInProgress is set to true while the object is being restored to S3, and then it changes to false and the RestoreExpiration is set to a date when the object is ready to be downloaded out of S3:

Get-S3ObjectMetadata -BucketName <bucket> -key '<S3 folder/S3 filename>' -ServerSideEncryptionCustomerMethod AES256 -ServerSideEncryptionCustomerProvidedKey "123456"
-or-
aws s3 cp s3://awsexamplebucket/dir1/ s3://awsexamplebucket/dir1/ --storage-class STANDARD --recursive --force-glacier-transfer [with encryption key specified]

1288333
answered 3 years ago
0

After talking with AWS Support, here is what I found:

Because the object is encrypted with a customer provided key, I can't see the status of the restore from Deep Glacier to S3 in the AWS Management Webpage. So I was told to use the following powershell command:

Get-S3ObjectMetadata -BucketName <bucket> -key '<S3 folder/S3 filename>' -ServerSideEncryptionCustomerMethod AES256 -ServerSideEncryptionCustomerProvidedKey "123456"

Or, I could have used the AWS command (adding the argument for providing the encryption key):
aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

With either command, you can see that RestoreInProgress is set to true while the object is being restored to S3, and then it changes to false and the RestoreExpiration is set to a date when the object is ready to be downloaded out of S3:

Get-S3ObjectMetadata -BucketName <bucket> -key '<S3 folder/S3 filename>' -ServerSideEncryptionCustomerMethod AES256 -ServerSideEncryptionCustomerProvidedKey "123456"
-or-
aws s3 cp s3://awsexamplebucket/dir1/ s3://awsexamplebucket/dir1/ --storage-class STANDARD --recursive --force-glacier-transfer [with encryption key specified]

1288333
answered 3 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions