You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glacier新手求助:如何通过PowerShell连接存储并上传文件?

用PowerShell操作AWS Glacier的完整实操步骤

一、配置AWS凭证(解决凭证配置模糊问题)

有两种常用配置方式,按需选择:

方式1:永久凭证配置(推荐,无需每次重复输入)

  • 打开PowerShell,执行以下命令存储凭证(替换YOUR_ACCESS_KEY和YOUR_SECRET_KEY为AWS IAM用户的密钥,该用户需拥有Glacier操作权限,比如AmazonGlacierFullAccess):
    Set-AWSCredential -AccessKey YOUR_ACCESS_KEY -SecretKey YOUR_SECRET_KEY -StoreAs GlacierProfile
    
  • 设置默认AWS区域(替换为你实际使用的区域,比如us-east-1):
    Set-DefaultAWSRegion -Region us-east-1
    
  • 后续操作可通过-ProfileName指定该凭证,示例:
    Get-GLCVault -ProfileName GlacierProfile
    

方式2:临时会话凭证(适合单次临时操作)

每次操作前先初始化凭证:

Initialize-AWSDefaults -AccessKey YOUR_ACCESS_KEY -SecretKey YOUR_SECRET_KEY -Region us-east-1

二、创建Glacier存储库(Vault)

运行以下命令创建Vault,替换MyGlacierVault为自定义名称:

New-GLCVault -VaultName MyGlacierVault -ProfileName GlacierProfile

验证创建结果:

Get-GLCVault -ProfileName GlacierProfile

三、上传文件到Glacier

Glacier分小文件直接上传、大文件分块上传两种场景,以下是实操步骤:

1. 小文件(<100MB)直接上传

替换本地文件路径C:\test\small-file.zip和Vault名称:

# 上传后会返回存档ID(ArchiveId),务必保存该ID用于后续读取
$archiveId = Write-GLCArchive -VaultName MyGlacierVault -FilePath C:\test\small-file.zip -ProfileName GlacierProfile
Write-Host "存档ID:$archiveId"

2. 大文件(>100MB)分块上传

以C:\test\large-file.iso为例:

  • 第一步:初始化分块上传,获取上传ID(UploadId)
    # PartSize为分块大小(字节),需为2的幂,示例为100MB(104857600字节)
    $uploadId = Initiate-GLCMultipartUpload -VaultName MyGlacierVault -PartSize 104857600 -ProfileName GlacierProfile
    Write-Host "上传ID:$uploadId"
    
  • 第二步:循环分块上传文件
    $filePath = "C:\test\large-file.iso"
    $fileSize = (Get-Item $filePath).Length
    $partSize = 104857600
    $partCount = [math]::Ceiling($fileSize / $partSize)
    
    for ($i=0; $i -lt $partCount; $i++) {
        $startByte = $i * $partSize
        $endByte = [math]::Min(($i+1)*$partSize - 1, $fileSize - 1)
        Write-Host "正在上传第$($i+1)/$partCount块,范围:$startByte-$endByte"
        Write-GLCMultipartPart -VaultName MyGlacierVault -UploadId $uploadId -FilePath $filePath -Range "bytes $startByte-$endByte/*" -ProfileName GlacierProfile
    }
    
  • 第三步:完成分块上传,获取存档ID
    $archiveId = Complete-GLCMultipartUpload -VaultName MyGlacierVault -UploadId $uploadId -ArchiveDescription "Large ISO file" -ProfileName GlacierProfile
    Write-Host "存档ID:$archiveId"
    

四、读取(恢复)Glacier中的文件

Glacier是归档存储,无法直接读取,需先发起恢复请求,等待存档变为可下载状态(恢复时长取决于选择的优先级):

1. 发起存档恢复请求

替换YOUR_ARCHIVE_ID为上传时保存的存档ID,可选择三种恢复层级:

  • Standard:3-5小时,标准收费
  • Expedited:1-5分钟,额外收费
  • Bulk:5-12小时,最低收费
$jobId = Initiate-GLCJob -VaultName MyGlacierVault -JobType ArchiveRetrieval -ArchiveId YOUR_ARCHIVE_ID -Tier Standard -ProfileName GlacierProfile
Write-Host "恢复任务ID:$jobId"

2. 检查恢复任务状态

每隔一段时间执行该命令,直到状态变为Completed:

Get-GLCJob -VaultName MyGlacierVault -JobId $jobId -ProfileName GlacierProfile

3. 下载恢复后的文件

替换保存路径C:\test\recovered-file.zip:

Get-GLCJobOutput -VaultName MyGlacierVault -JobId $jobId -FilePath C:\test\recovered-file.zip -ProfileName GlacierProfile

五、常用辅助命令

  • 列出Vault中的所有恢复任务:
    Get-GLCJobList -VaultName MyGlacierVault -ProfileName GlacierProfile
    
  • 删除空Vault(Vault必须无存档才能删除):
    Remove-GLCVault -VaultName MyGlacierVault -ProfileName GlacierProfile
    

内容的提问来源于stack exchange,提问作者user216652

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:17:38