此页面介绍如何使用 Cloud Tools for PowerShell 将本地计算机中的数据备份到 Cloud Storage。与大多数资源不同,Cloud Tools for PowerShell 提供两种访问 Cloud Storage 资源的方法,即 cmdlet 和 PowerShell 提供程序。
提供程序允许您使用熟悉的文件系统命令来访问存储分区和对象(例如文件系统)。不过,提供程序也存在一些限制。并非所有法定对象名称都能转换为法定提供程序路径。您无法使用提供程序来管理 ACL。对于这些高级用例,您可以使用 cmdlet。 如需详细了解 Cloud Storage cmdlet,请参阅 Cloud Tools for PowerShell cmdlet 参考。
上传数据
Cloud Storage 中的数据会整理到存储分区中。您可以通过以下方法创建新的存储分区:
Cmdlet
使用 New-GcsBucket
cmdlet 创建一个新的存储分区:
$bucket = "my-gcs-bucket" New-GcsBucket $bucket
提供商
存储分区是 gs:\
硬盘根目录下的文件夹。创建该级别的新项将创建新的存储分区。
cd gs:\ $bucket = "my-gcs-bucket" mkdir $bucket
将文件上传到存储分区
您可以通过以下方法将单个文件或整个目录上传到存储分区:
Cmdlet
使用 New-GcsObject
。此操作需要将目标存储分区和对象名称用作参数。新存储对象的内容来源取决于您使用的参数集。
您可以使用 -File
参数并指定文件路径,将本地文件的内容上传到 Cloud Storage。或者,您可以通过 PowerShell 流水线将对象的内容作为字符串传递,或者也可以使用 -Value
参数。
您可以使用 -Folder
参数并指定文件夹路径,将本地磁盘中的整个目录上传到 Cloud Storage。如果您不希望将文件夹直接上传到 Cloud Storage 存储分区的根目录,请使用 -ObjectNamePrefix
指定一个前缀,该前缀将应用于上传的每个对象。
# Upload the folder LogFiles and its content to the root of the widget bucket. New-GcsObject -Bucket "widget" -Folder "C:\inetpub\logs\LogFiles" # Upload the folder LogFiles and its content to directory Test in the widget bucket. New-GcsObject -Bucket "widget" -Folder "C:\inetpub\logs\LogFiles" -ObjectNamePrefix "Test"
提供商
使用 New-Item
。此操作需要一个指向正在创建的项目的路径。此路径既可以是绝对路径,也可以是相对路径。要指定新存储对象的内容,您可以将该内容作为字符串指定给 -Value
参数,也可以将文件路径指定给 -File
参数。
New-Item gs:\my-gcs-bucket\new-object -File $file
以下代码段可将本地磁盘中的整个目录上传到 Cloud Storage。
cd $folder $files = Get-ChildItem -Recurse $data = @() foreach ($file in $files) { $objectPath = $file | Resolve-Path -Relative $data += @{file = $file; objectPath = $objectPath} } cd gs:\my-gcs-bucket foreach($element in $data) { Write-Host "`t${$element.objectPath}" New-Item $element.objectPath -File $element.file }
搜索数据
您可以使用 cmdlet 搜索数据,也可以使用提供程序,通过常见文件搜索 cmdlet 搜索数据。
Cmdlet
您可以使用 Get-GcsObject
搜索存储分区的对象。在与 Out-GridView
cmdlet 结合使用以直观呈现数据时,此方法非常有用:
Get-GcsObject $bucket | Select Name, Size | Out-GridView
提供商
您可以使用 Get-ChildItem
或其别名:dir
、ls
或 gci
。
可以使用 -Recurse
参数查看所有逻辑文件夹:
cd gs:\my-gcs-bucket ls -Recurse
读取数据
要通过提供程序读取数据,请使用标准 Get-Content
cmdlet。或者,使用 Read-GcsObject
cmdlet。
Cmdlet
要读取 Cloud Storage 对象的内容,请使用 Read-GcsObject
cmdlet。默认情况下,此 cmdlet 将对象的内容作为字符串读取并将其写入 PowerShell 流水线。您也可以指定 -OutFile
参数以将对象的内容下载到本地磁盘:
Read-GcsObject $bucket "timestamp.txt" | Write-Host Read-GcsObject $bucket "logo.png" ` -OutFile "$Env:UserProfile\pictures\logo.png"
提供商
要读取 Cloud Storage 对象的内容,请使用 Get-Content
cmdlet 或其别名:cat
、gc
或 type
。
cd gs:\my-gcs-bucket cat my-object-name
删除数据
要通过提供程序删除数据,请使用标准 Remove-Item
cmdlet。或者,使用 Remove-GcsObject
cmdlet。
Cmdlet
要移除 Cloud Storage 中的任何数据,请使用 Remove-GcsObject
cmdlet:
Get-GcsObject $bucket | Remove-GcsObject
提供商
要移除 Cloud Storage 中的数据,请使用 Remove-Item
cmdlet 或其别名 del
、rm
、erase
:
cd gs:\my-gcs-bucket rm my-object-name