使用 Tools for PowerShell V4 的 Amazon S3 示例 - AWS Tools for PowerShell(版本 4)

AWS Tools for PowerShell 版本 5(V5)已经发布!

要开始使用新版本的工具,请参阅《AWS Tools for PowerShell 用户指南(V5)》,特别是关于迁移到 V5 的主题。

使用 Tools for PowerShell V4 的 Amazon S3 示例

以下代码示例演示了如何将 AWS Tools for PowerShell V4 与 Amazon S3 结合使用来执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 Copy-S3Object

Tools for PowerShell V4

示例 1:此命令将对象“sample.txt”从存储桶“test-files”复制到同一个存储桶,但新键为“sample-copy.txt”。

Copy-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt -DestinationKey sample-copy.txt

示例 2:此命令将对象“sample.txt”从存储桶“test-files”复制到存储桶“backup-files”,键为“sample-copy.txt”。

Copy-S3Object -BucketName amzn-s3-demo-source-bucket -Key sample.txt -DestinationKey sample-copy.txt -DestinationBucket amzn-s3-demo-destination-bucket

示例 3:此命令将对象“sample.txt”从存储桶“test-files”下载到名为“local-sample.txt”的本地文件。

Copy-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt -LocalFile local-sample.txt

示例 4:将单个对象下载到指定的文件。下载的文件可以在 c:\downloads\data\archive.zip 中找到

Copy-S3Object -BucketName amzn-s3-demo-bucket -Key data/archive.zip -LocalFolder c:\downloads

示例 5:将与指定的键前缀匹配的所有对象下载到本地文件夹。相对键层次结构将作为子文件夹保留在总体下载位置中。

Copy-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix data -LocalFolder c:\downloads
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 CopyObject

以下代码示例演示了如何使用 Get-S3ACL

Tools for PowerShell V4

示例 1:该命令获取 S3 对象的对象所有者的详细信息。

Get-S3ACL -BucketName 'amzn-s3-demo-bucket' -key 'initialize.ps1' -Select AccessControlList.Owner

输出:

DisplayName Id ----------- -- testusername 9988776a6554433d22f1100112e334acb45566778899009e9887bd7f66c5f544
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetACL

以下代码示例演示了如何使用 Get-S3Bucket

Tools for PowerShell V4

示例 1:此命令返回所有 S3 存储桶。

Get-S3Bucket

示例 2:此命令返回名为“test-files”的存储桶

Get-S3Bucket -BucketName amzn-s3-demo-bucket
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 ListBuckets

以下代码示例演示了如何使用 Get-S3BucketAccelerateConfiguration

Tools for PowerShell V4

示例 1:如果为指定的存储桶启用了传输加速设置,则此命令将返回值 Enabled。

Get-S3BucketAccelerateConfiguration -BucketName 'amzn-s3-demo-bucket'

输出:

Value ----- Enabled

以下代码示例演示了如何使用 Get-S3BucketAnalyticsConfiguration

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶中名为“testfilter”的分析筛选条件的详细信息。

Get-S3BucketAnalyticsConfiguration -BucketName 'amzn-s3-demo-bucket' -AnalyticsId 'testfilter'

以下代码示例演示了如何使用 Get-S3BucketAnalyticsConfigurationList

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶的前 100 个分析配置。

Get-S3BucketAnalyticsConfigurationList -BucketName 'amzn-s3-demo-bucket'

以下代码示例演示了如何使用 Get-S3BucketEncryption

Tools for PowerShell V4

示例 1:此命令返回与给定存储桶关联的所有服务器端加密规则。

Get-S3BucketEncryption -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketEncryption

以下代码示例演示了如何使用 Get-S3BucketInventoryConfiguration

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶的名为“testinventory”的清单的详细信息。

Get-S3BucketInventoryConfiguration -BucketName 'amzn-s3-demo-bucket' -InventoryId 'testinventory'

以下代码示例演示了如何使用 Get-S3BucketInventoryConfigurationList

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶的前 100 个清单配置。

Get-S3BucketInventoryConfigurationList -BucketName 'amzn-s3-demo-bucket'

以下代码示例演示了如何使用 Get-S3BucketLocation

Tools for PowerShell V4

示例 1:如果存在约束,则此命令返回存储桶“amzn-s3-demo-bucket”的位置约束。

Get-S3BucketLocation -BucketName 'amzn-s3-demo-bucket'

输出:

Value ----- ap-south-1
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketLocation

以下代码示例演示了如何使用 Get-S3BucketLogging

Tools for PowerShell V4

示例 1:此命令返回指定存储桶的日志记录状态。

Get-S3BucketLogging -BucketName 'amzn-s3-demo-bucket'

输出:

TargetBucketName Grants TargetPrefix ---------------- ------ ------------ testbucket1 {} testprefix
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketLogging

以下代码示例演示了如何使用 Get-S3BucketMetricsConfiguration

Tools for PowerShell V4

示例 1:此命令返回有关给定 S3 存储桶的名为“testfilter”的指标筛选条件的详细信息。

Get-S3BucketMetricsConfiguration -BucketName 'amzn-s3-demo-bucket' -MetricsId 'testfilter'

以下代码示例演示了如何使用 Get-S3BucketNotification

Tools for PowerShell V4

示例 1:此示例检索给定存储桶的通知配置

Get-S3BucketNotification -BucketName amzn-s3-demo-bucket | select -ExpandProperty TopicConfigurations

输出:

Id Topic -- ----- mimo arn:aws:sns:eu-west-1:123456789012:topic-1
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketNotification

以下代码示例演示了如何使用 Get-S3BucketPolicy

Tools for PowerShell V4

示例 1:此命令输出与给定 S3 存储桶关联的存储桶策略。

Get-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketPolicy

以下代码示例演示了如何使用 Get-S3BucketPolicyStatus

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶的策略状态,此状态指示存储桶是否为公有存储桶。

Get-S3BucketPolicyStatus -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketPolicyStatus

以下代码示例演示了如何使用 Get-S3BucketReplication

Tools for PowerShell V4

示例 1:返回在名为“amzn-s3-demo-bucket”的存储桶上设置的复制配置信息。

Get-S3BucketReplication -BucketName amzn-s3-demo-bucket
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketReplication

以下代码示例演示了如何使用 Get-S3BucketRequestPayment

Tools for PowerShell V4

示例 1:返回名为“amzn-s3-demo-bucket”的存储桶的请求付款配置。默认情况下,存储桶拥有者支付从存储桶进行下载的费用。

Get-S3BucketRequestPayment -BucketName amzn-s3-demo-bucket
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketRequestPayment

以下代码示例演示了如何使用 Get-S3BucketTagging

Tools for PowerShell V4

示例 1:此命令返回与给定存储桶关联的所有标签。

Get-S3BucketTagging -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketTagging

以下代码示例演示了如何使用 Get-S3BucketVersioning

Tools for PowerShell V4

示例 1:此命令返回与给定存储桶相关的版本控制状态。

Get-S3BucketVersioning -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketVersioning

以下代码示例演示了如何使用 Get-S3BucketWebsite

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶的静态网站配置的详细信息。

Get-S3BucketWebsite -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetBucketWebsite

以下代码示例演示了如何使用 Get-S3CORSConfiguration

Tools for PowerShell V4

示例 1:此命令返回一个对象,其中包含与给定 S3 存储桶相对应的所有 CORS 配置规则。

Get-S3CORSConfiguration -BucketName 'amzn-s3-demo-bucket' -Select Configuration.Rules

输出:

AllowedMethods : {PUT, POST, DELETE} AllowedOrigins : {http://www.example1.com} Id : ExposeHeaders : {} MaxAgeSeconds : 0 AllowedHeaders : {*} AllowedMethods : {PUT, POST, DELETE} AllowedOrigins : {http://www.example2.com} Id : ExposeHeaders : {} MaxAgeSeconds : 0 AllowedHeaders : {*} AllowedMethods : {GET} AllowedOrigins : {*} Id : ExposeHeaders : {} MaxAgeSeconds : 0 AllowedHeaders : {}
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetCORSConfiguration

以下代码示例演示了如何使用 Get-S3LifecycleConfiguration

Tools for PowerShell V4

示例 1:此示例检索存储桶的生命周期配置。

Get-S3LifecycleConfiguration -BucketName amzn-s3-demo-bucket

输出:

Rules ----- {Remove-in-150-days, Archive-to-Glacier-in-30-days}

以下代码示例演示了如何使用 Get-S3Object

Tools for PowerShell V4

示例 1:此命令检索有关存储桶“test-files”中所有项目的信息。

Get-S3Object -BucketName amzn-s3-demo-bucket

示例 2:此命令从存储桶“test-files”中检索有关项目“sample.txt”的信息。

Get-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt

示例 3:此命令从存储桶“test-files”中检索有关前缀为“sample”的所有项目的信息。

Get-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix sample
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet Reference (V4)》中的 ListObjects

以下代码示例演示了如何使用 Get-S3ObjectLockConfiguration

Tools for PowerShell V4

示例 1:如果为给定的 S3 存储桶启用了对象锁定配置,则此命令将返回值“Enabled”

Get-S3ObjectLockConfiguration -BucketName 'amzn-s3-demo-bucket' -Select ObjectLockConfiguration.ObjectLockEnabled

输出:

Value ----- Enabled

以下代码示例演示了如何使用 Get-S3ObjectMetadata

Tools for PowerShell V4

示例 1:此命令返回给定 S3 存储桶中键为“ListTrusts.txt”的对象的元数据。

Get-S3ObjectMetadata -BucketName 'amzn-s3-demo-bucket' -Key 'ListTrusts.txt'

输出:

Headers : Amazon.S3.Model.HeadersCollection Metadata : Amazon.S3.Model.MetadataCollection DeleteMarker : AcceptRanges : bytes ContentRange : Expiration : RestoreExpiration : RestoreInProgress : False LastModified : 01/01/2020 08:02:05 ETag : "d000011112a222e333e3bb4ee5d43d21" MissingMeta : 0 VersionId : null Expires : 01/01/0001 00:00:00 WebsiteRedirectLocation : ServerSideEncryptionMethod : AES256 ServerSideEncryptionCustomerMethod : ServerSideEncryptionKeyManagementServiceKeyId : ReplicationStatus : PartsCount : ObjectLockLegalHoldStatus : ObjectLockMode : ObjectLockRetainUntilDate : 01/01/0001 00:00:00 StorageClass : RequestCharged :
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetObjectMetadata

以下代码示例演示了如何使用 Get-S3ObjectRetention

Tools for PowerShell V4

示例 1:该命令返回保留对象之前的模式和日期。

Get-S3ObjectRetention -BucketName 'amzn-s3-demo-bucket' -Key 'testfile.txt'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetObjectRetention

以下代码示例演示了如何使用 Get-S3ObjectTagSet

Tools for PowerShell V4

示例 1:该示例返回与给定 S3 存储桶上存在的对象关联的标签。

Get-S3ObjectTagSet -Key 'testfile.txt' -BucketName 'amzn-s3-demo-bucket'

输出:

Key Value --- ----- test value
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetObjectTagging

以下代码示例演示了如何使用 Get-S3PreSignedURL

Tools for PowerShell V4

示例 1:该命令返回指定键和到期日期的预签名 URL。

Get-S3PreSignedURL -BucketName 'amzn-s3-demo-bucket' -Key 'testkey' -Expires '2023-11-16'

示例 2:该命令返回带有指定键和到期日期的目录存储桶的预签名 URL。

[Amazon.AWSConfigsS3]::UseSignatureVersion4 = $true Get-S3PreSignedURL -BucketName amzn-s3-demo-bucket--usw2-az1--x-s3 -Key 'testkey' -Expire '2023-11-17'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetPreSignedURL

以下代码示例演示了如何使用 Get-S3PublicAccessBlock

Tools for PowerShell V4

示例 1:该命令返回给定 S3 存储桶的公共访问权限屏蔽设置。

Get-S3PublicAccessBlock -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetPublicAccessBlock

以下代码示例演示了如何使用 Get-S3Version

Tools for PowerShell V4

示例 1:此命令返回有关给定 S3 存储桶中所有对象版本的元数据。

Get-S3Version -BucketName 'amzn-s3-demo-bucket'

输出:

IsTruncated : False KeyMarker : VersionIdMarker : NextKeyMarker : NextVersionIdMarker : Versions : {EC2.txt, EC2MicrosoftWindowsGuide.txt, ListDirectories.json, ListTrusts.json} Name : amzn-s3-demo-bucket Prefix : MaxKeys : 1000 CommonPrefixes : {} Delimiter :
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 ListVersions

以下代码示例演示了如何使用 New-S3Bucket

Tools for PowerShell V4

示例 1:此命令创建一个名为“sample-bucket”的新私有存储桶。

New-S3Bucket -BucketName amzn-s3-demo-bucket

示例 2:此命令创建一个名为“sample-bucket”的具有读写权限的新存储桶。

New-S3Bucket -BucketName amzn-s3-demo-bucket -PublicReadWrite

示例 3:此命令创建一个名为“sample-bucket”的具有只读权限的新存储桶。

New-S3Bucket -BucketName amzn-s3-demo-bucket -PublicReadOnly

示例 4:此命令使用 PutBucketConfiguration 创建一个名为“amzn-s3-demo-bucket--use1-az5--x-s3”的新目录存储桶。

$bucketConfiguration = @{ BucketInfo = @{ DataRedundancy = 'SingleAvailabilityZone' Type = 'Directory' } Location = @{ Name = 'usw2-az1' Type = 'AvailabilityZone' } } New-S3Bucket -BucketName amzn-s3-demo-bucket--usw2-az1--x-s3 -BucketConfiguration $bucketConfiguration -Region us-west-2
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucket

以下代码示例演示了如何使用 Read-S3Object

Tools for PowerShell V4

示例 1:此命令从存储桶“test-files”中检索项目“sample.txt”,并将其保存到当前位置名为“local-sample.txt”的文件中。在调用此命令之前,文件“local-sample.txt”不必存在。

Read-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt -File local-sample.txt

示例 2:此命令从存储桶“test-files”中检索虚拟目录“DIR”,并将其保存到当前位置名为“Local-DIR”的文件夹中。在调用此命令之前,文件夹“Local-DIR”不必存在。

Read-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix DIR -Folder Local-DIR

示例 3:将键以“.json”结尾的所有对象从存储桶名称中带有“config”的存储桶下载到指定文件夹中的文件。对象键用于设置文件名。

Get-S3Bucket | ? { $_.BucketName -like '*config*' } | Get-S3Object | ? { $_.Key -like '*.json' } | Read-S3Object -Folder C:\ConfigObjects
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 GetObject

以下代码示例演示了如何使用 Remove-S3Bucket

Tools for PowerShell V4

示例 1:此命令从存储桶“test-files”中移除所有对象和对象版本,然后删除该存储桶。在继续操作之前,该命令将提示进行确认。添加 -Force 开关可禁止确认。请注意,不能删除不为空的存储桶。

Remove-S3Bucket -BucketName amzn-s3-demo-bucket -DeleteBucketContent
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteBucket

以下代码示例演示了如何使用 Remove-S3BucketAnalyticsConfiguration

Tools for PowerShell V4

示例 1:该命令移除给定 S3 存储桶中名为“testfilter”的分析筛选条件。

Remove-S3BucketAnalyticsConfiguration -BucketName 'amzn-s3-demo-bucket' -AnalyticsId 'testfilter'

以下代码示例演示了如何使用 Remove-S3BucketEncryption

Tools for PowerShell V4

示例 1:这将禁用为所提供的 S3 存储桶启用的加密。

Remove-S3BucketEncryption -BucketName 'amzn-s3-demo-bucket'

输出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-S3BucketEncryption (DeleteBucketEncryption)" on target "s3casetestbucket". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteBucketEncryption

以下代码示例演示了如何使用 Remove-S3BucketInventoryConfiguration

Tools for PowerShell V4

示例 1:此命令移除与给定 S3 存储桶相对应的名为“testInventoryName”的清单。

Remove-S3BucketInventoryConfiguration -BucketName 'amzn-s3-demo-bucket' -InventoryId 'testInventoryName'

输出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-S3BucketInventoryConfiguration (DeleteBucketInventoryConfiguration)" on target "amzn-s3-demo-bucket". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y

以下代码示例演示了如何使用 Remove-S3BucketMetricsConfiguration

Tools for PowerShell V4

示例 1:该命令移除给定 S3 存储桶中名为“testmetrics”的指标筛选条件。

Remove-S3BucketMetricsConfiguration -BucketName 'amzn-s3-demo-bucket' -MetricsId 'testmetrics'

以下代码示例演示了如何使用 Remove-S3BucketPolicy

Tools for PowerShell V4

示例 1:该命令移除与给定 S3 存储桶关联的存储桶策略。

Remove-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteBucketPolicy

以下代码示例演示了如何使用 Remove-S3BucketReplication

Tools for PowerShell V4

示例 1:删除与名为“amzn-s3-demo-bucket”的存储桶关联的复制配置。请注意,此操作需要 s3:DeleteReplicationConfiguration 操作的权限。在操作继续之前,系统将提示您进行确认 - 要取消确认,请使用 -Force 开关。

Remove-S3BucketReplication -BucketName amzn-s3-demo-bucket
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteBucketReplication

以下代码示例演示了如何使用 Remove-S3BucketTagging

Tools for PowerShell V4

示例 1:此命令移除与给定 S3 存储桶关联的所有标签。

Remove-S3BucketTagging -BucketName 'amzn-s3-demo-bucket'

输出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-S3BucketTagging (DeleteBucketTagging)" on target "amzn-s3-demo-bucket". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteBucketTagging

以下代码示例演示了如何使用 Remove-S3BucketWebsite

Tools for PowerShell V4

示例 1:此命令禁用给定 S3 存储桶的静态网站托管属性。

Remove-S3BucketWebsite -BucketName 'amzn-s3-demo-bucket'

输出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-S3BucketWebsite (DeleteBucketWebsite)" on target "amzn-s3-demo-bucket". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteBucketWebsite

以下代码示例演示了如何使用 Remove-S3CORSConfiguration

Tools for PowerShell V4

示例 1:此命令移除给定 S3 存储桶的 CORS 配置。

Remove-S3CORSConfiguration -BucketName 'amzn-s3-demo-bucket'

输出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-S3CORSConfiguration (DeleteCORSConfiguration)" on target "amzn-s3-demo-bucket". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteCORSConfiguration

以下代码示例演示了如何使用 Remove-S3LifecycleConfiguration

Tools for PowerShell V4

示例 1:该命令移除给定 S3 存储桶的所有生命周期规则。

Remove-S3LifecycleConfiguration -BucketName 'amzn-s3-demo-bucket'

以下代码示例演示了如何使用 Remove-S3MultipartUpload

Tools for PowerShell V4

示例 1:此命令中止在 5 天前创建的分段上传。

Remove-S3MultipartUpload -BucketName amzn-s3-demo-bucket -DaysBefore 5

示例 2:此命令中止在 2014 年 1 月 2 日之前创建的分段上传。

Remove-S3MultipartUpload -BucketName amzn-s3-demo-bucket -InitiatedDate "Thursday, January 02, 2014"

示例 3:此命令中止在 2014 年 1 月 2 日 10:45:37 之前创建的分段上传。

Remove-S3MultipartUpload -BucketName amzn-s3-demo-bucket -InitiatedDate "2014/01/02 10:45:37"
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 AbortMultipartUpload

以下代码示例演示了如何使用 Remove-S3Object

Tools for PowerShell V4

示例 1:此命令从存储桶“test-files”中移除对象“sample.txt”。在命令执行之前,系统会提示您进行确认;要取消提示,请使用 -Force 开关。

Remove-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt

示例 2:假设存储桶已配置为启用对象版本,则此命令会从存储桶“test-files”中移除对象“sample.txt”的指定版本。

Remove-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt -VersionId HLbxnx6V9omT6AQYVpks8mmFKQcejpqt

示例 3:此命令通过单个批量操作,从存储桶“test-files”中移除对象“sample1.txt”、“sample2.txt”和“sample3.txt”。无论删除的成功或错误状态如何,服务响应都将列出所有已处理的键。要仅获取服务无法处理的键的错误,请添加 -ReportErrorsOnly 参数(也可以使用别名 -Quiet 来指定此参数)

Remove-S3Object -BucketName amzn-s3-demo-bucket -KeyCollection @( "sample1.txt", "sample2.txt", "sample3.txt" )

示例 4:此示例使用带有 -KeyCollection 参数的内联表达式来获取要删除的对象的键。Get-S3Object 返回 Amazon.S3.Model.S3Object 实例的集合,每个实例都有一个标识对象的字符串类型的 Key(键)成员。

Remove-S3Object -bucketname "amzn-s3-demo-bucket" -KeyCollection (Get-S3Object "test-files" -KeyPrefix "prefix/subprefix" | select -ExpandProperty Key)

示例 5:此示例获取存储桶中所有具有键前缀“prefix/subprefix”的对象并将其删除。请注意,一次只能处理一个传入的对象。对于大型集合,可以考虑将集合传递给 cmdlet 的 -InputObject(别名 -S3ObjectCollection)参数,这样,只需调用一次服务即可批量删除。

Get-S3Object -BucketName "amzn-s3-demo-bucket" -KeyPrefix "prefix/subprefix" | Remove-S3Object -Force

示例 6:此示例将代表删除标记的 Amazon.S3.Model.S3ObjectVersion 实例的集合传送到 cmdlet 进行删除。请注意,一次只能处理一个传入的对象。对于大型集合,可以考虑将集合传递给 cmdlet 的 -InputObject(别名 -S3ObjectCollection)参数,这样,只需调用一次服务即可批量删除。

(Get-S3Version -BucketName "amzn-s3-demo-bucket").Versions | Where {$_.IsDeleteMarker -eq "True"} | Remove-S3Object -Force

示例 7:此脚本显示如何通过构造与 -KeyAndVersionCollection 参数一起使用的对象数组,来批量删除一组对象(在本例中为删除标记)

$keyVersions = @() $markers = (Get-S3Version -BucketName $BucketName).Versions | Where {$_.IsDeleteMarker -eq "True"} foreach ($marker in $markers) { $keyVersions += @{ Key = $marker.Key; VersionId = $marker.VersionId } } Remove-S3Object -BucketName $BucketName -KeyAndVersionCollection $keyVersions -Force
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteObjects

以下代码示例演示了如何使用 Remove-S3ObjectTagSet

Tools for PowerShell V4

示例 1:此命令移除给定 S3 存储桶中与键为“testfile.txt”的对象关联的所有标签。

Remove-S3ObjectTagSet -Key 'testfile.txt' -BucketName 'amzn-s3-demo-bucket' -Select '^Key'

输出:

Confirm Are you sure you want to perform this action? Performing the operation "Remove-S3ObjectTagSet (DeleteObjectTagging)" on target "testfile.txt". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y testfile.txt
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeleteObjectTagging

以下代码示例演示了如何使用 Remove-S3PublicAccessBlock

Tools for PowerShell V4

示例 1:此命令关闭给定存储桶的屏蔽公共访问权限配置。

Remove-S3PublicAccessBlock -BucketName 'amzn-s3-demo-bucket' -Force -Select '^BucketName'

输出:

amzn-s3-demo-bucket
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 DeletePublicAccessBlock

以下代码示例演示了如何使用 Set-S3BucketEncryption

Tools for PowerShell V4

示例 1:此命令在指定的存储桶上启用具有 Amazon S3 托管式密钥的默认 AES256 服务器端加密(SSE-S3)。

$Encryptionconfig = @{ServerSideEncryptionByDefault = @{ServerSideEncryptionAlgorithm = "AES256"}} Set-S3BucketEncryption -BucketName 'amzn-s3-demo-bucket' -ServerSideEncryptionConfiguration_ServerSideEncryptionRule $Encryptionconfig
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketEncryption

以下代码示例演示了如何使用 Test-S3Bucket

Tools for PowerShell V4

示例 1:如果存储桶存在,此命令返回 True,否则返回 False。即使存储桶不属于该用户,该命令也会返回 True。

Test-S3Bucket -BucketName amzn-s3-demo-bucket
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 Test-S3Bucket

以下代码示例演示了如何使用 Write-S3BucketAccelerateConfiguration

Tools for PowerShell V4

示例 1:此命令为给定 S3 存储桶启用传输加速。

$statusVal = New-Object Amazon.S3.BucketAccelerateStatus('Enabled') Write-S3BucketAccelerateConfiguration -BucketName 'amzn-s3-demo-bucket' -AccelerateConfiguration_Status $statusVal

以下代码示例演示了如何使用 Write-S3BucketNotification

Tools for PowerShell V4

示例 1:此示例为 S3 事件 ObjectRemovedDelete 配置 SNS 主题配置,并为给定的 s3 存储桶启用通知

$topic = [Amazon.S3.Model.TopicConfiguration] @{ Id = "delete-event" Topic = "arn:aws:sns:eu-west-1:123456789012:topic-1" Event = [Amazon.S3.EventType]::ObjectRemovedDelete } Write-S3BucketNotification -BucketName amzn-s3-demo-bucket -TopicConfiguration $topic

示例 2:此示例为给定存储桶启用 ObjectCreatedAll 的通知,将其发送到 Lambda 函数。

$lambdaConfig = [Amazon.S3.Model.LambdaFunctionConfiguration] @{ Events = "s3:ObjectCreated:*" FunctionArn = "arn:aws:lambda:eu-west-1:123456789012:function:rdplock" Id = "ObjectCreated-Lambda" Filter = @{ S3KeyFilter = @{ FilterRules = @( @{Name="Prefix";Value="dada"} @{Name="Suffix";Value=".pem"} ) } } } Write-S3BucketNotification -BucketName amzn-s3-demo-bucket -LambdaFunctionConfiguration $lambdaConfig

示例 3:此示例基于不同的键后缀创建 2 个不同的 Lambda 配置,并在单个命令中配置了这两个配置。

#Lambda Config 1 $firstLambdaConfig = [Amazon.S3.Model.LambdaFunctionConfiguration] @{ Events = "s3:ObjectCreated:*" FunctionArn = "arn:aws:lambda:eu-west-1:123456789012:function:verifynet" Id = "ObjectCreated-dada-ps1" Filter = @{ S3KeyFilter = @{ FilterRules = @( @{Name="Prefix";Value="dada"} @{Name="Suffix";Value=".ps1"} ) } } } #Lambda Config 2 $secondlambdaConfig = [Amazon.S3.Model.LambdaFunctionConfiguration] @{ Events = [Amazon.S3.EventType]::ObjectCreatedAll FunctionArn = "arn:aws:lambda:eu-west-1:123456789012:function:verifyssm" Id = "ObjectCreated-dada-json" Filter = @{ S3KeyFilter = @{ FilterRules = @( @{Name="Prefix";Value="dada"} @{Name="Suffix";Value=".json"} ) } } } Write-S3BucketNotification -BucketName amzn-s3-demo-bucket -LambdaFunctionConfiguration $firstLambdaConfig,$secondlambdaConfig
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketNotification

以下代码示例演示了如何使用 Write-S3BucketReplication

Tools for PowerShell V4

示例 1:此示例设置具有单个规则的复制配置,支持将存储桶“amzn-s3-demo-bucket”中使用键名称前缀“TaxDocs”创建的任何新对象复制到“amzn-s3-demo-bucket”存储桶。

$rule1 = New-Object Amazon.S3.Model.ReplicationRule $rule1.ID = "Rule-1" $rule1.Status = "Enabled" $rule1.Prefix = "TaxDocs" $rule1.Destination = @{ BucketArn = "arn:aws:s3:::amzn-s3-demo-destination-bucket" } $params = @{ BucketName = "amzn-s3-demo-bucket" Configuration_Role = "arn:aws:iam::35667example:role/CrossRegionReplicationRoleForS3" Configuration_Rule = $rule1 } Write-S3BucketReplication @params

示例 2:此示例设置具有多个规则的复制配置,支持将使用键名称前缀“TaxDocs”或“OtherDocs”创建的任何新对象复制到“amzn-s3-demo-bucket”存储桶。键前缀不得重叠。

$rule1 = New-Object Amazon.S3.Model.ReplicationRule $rule1.ID = "Rule-1" $rule1.Status = "Enabled" $rule1.Prefix = "TaxDocs" $rule1.Destination = @{ BucketArn = "arn:aws:s3:::amzn-s3-demo-destination-bucket" } $rule2 = New-Object Amazon.S3.Model.ReplicationRule $rule2.ID = "Rule-2" $rule2.Status = "Enabled" $rule2.Prefix = "OtherDocs" $rule2.Destination = @{ BucketArn = "arn:aws:s3:::amzn-s3-demo-destination-bucket" } $params = @{ BucketName = "amzn-s3-demo-bucket" Configuration_Role = "arn:aws:iam::35667example:role/CrossRegionReplicationRoleForS3" Configuration_Rule = $rule1,$rule2 } Write-S3BucketReplication @params

示例 3:此示例更新指定存储桶上的复制配置,以禁用用于控制将键名称前缀为“TaxDocs”的对象复制到存储桶“amzn-s3-demo-bucket”的规则。

$rule1 = New-Object Amazon.S3.Model.ReplicationRule $rule1.ID = "Rule-1" $rule1.Status = "Disabled" $rule1.Prefix = "TaxDocs" $rule1.Destination = @{ BucketArn = "arn:aws:s3:::amzn-s3-demo-destination-bucket" } $params = @{ BucketName = "amzn-s3-demo-bucket" Configuration_Role = "arn:aws:iam::35667example:role/CrossRegionReplicationRoleForS3" Configuration_Rule = $rule1 } Write-S3BucketReplication @params
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketReplication

以下代码示例演示了如何使用 Write-S3BucketRequestPayment

Tools for PowerShell V4

示例 1:更新名为“amzn-s3-demo-bucket”的存储桶的请求付款配置,以便向从该存储桶请求下载的人员收取下载费用。默认情况下,存储桶拥有者支付下载的费用。要将请求付款设置回默认值,请将“BucketOwner”用于 RequestPaymentConfiguration_Payer 参数。

Write-S3BucketRequestPayment -BucketName amzn-s3-demo-bucket -RequestPaymentConfiguration_Payer Requester
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketRequestPayment

以下代码示例演示了如何使用 Write-S3BucketTagging

Tools for PowerShell V4

示例 1:此命令将两个标签应用于名为 cloudtrail-test-2018 的存储桶:一个标签的键为 Stage,值为 Test;另一个标签的键为 Environment,值为 Alpha。要验证标签已添加到存储桶,请运行 Get-S3BucketTagging -BucketName bucket_name。结果应显示您在第一个命令中应用于存储桶的标签。请注意,Write-S3BucketTagging 会覆盖在存储桶上的整个现有标签集。要添加或删除各标签,请运行资源组和标记 API cmdlet Add-RGTResourceTagRemove-RGTResourceTag。或者,使用 AWS 管理控制台中的标签编辑器来管理 S3 存储桶标签。

Write-S3BucketTagging -BucketName amzn-s3-demo-bucket -TagSet @( @{ Key="Stage"; Value="Test" }, @{ Key="Environment"; Value="Alpha" } )

示例 2:此命令将名为 cloudtrail-test-2018 的存储桶传送到 Write-S3BucketTagging cmdlet。它将标签 Stage:Production 和 Department:Finance 应用于存储桶。请注意,Write-S3BucketTagging 会覆盖在存储桶上的整个现有标签集。

Get-S3Bucket -BucketName amzn-s3-demo-bucket | Write-S3BucketTagging -TagSet @( @{ Key="Stage"; Value="Production" }, @{ Key="Department"; Value="Finance" } )
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketTagging

以下代码示例演示了如何使用 Write-S3BucketVersioning

Tools for PowerShell V4

示例 1:该命令为给定 S3 存储桶启用版本控制。

Write-S3BucketVersioning -BucketName 'amzn-s3-demo-bucket' -VersioningConfig_Status Enabled
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketVersioning

以下代码示例演示了如何使用 Write-S3BucketWebsite

Tools for PowerShell V4

示例 1:该命令为给定存储桶启用网站托管,索引文档为“index.html”,错误文档为“error.html”。

Write-S3BucketWebsite -BucketName 'amzn-s3-demo-bucket' -WebsiteConfiguration_IndexDocumentSuffix 'index.html' -WebsiteConfiguration_ErrorDocument 'error.html'
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutBucketWebsite

以下代码示例演示了如何使用 Write-S3LifecycleConfiguration

Tools for PowerShell V4

示例 1:此示例写入/替换 $NewRule 中提供的配置。此配置确保使用给定的前缀和标签值来限制范围对象。

$NewRule = [Amazon.S3.Model.LifecycleRule] @{ Expiration = @{ Days= 50 } Id = "Test-From-Write-cmdlet-1" Filter= @{ LifecycleFilterPredicate = [Amazon.S3.Model.LifecycleAndOperator]@{ Operands= @( [Amazon.S3.Model.LifecyclePrefixPredicate] @{ "Prefix" = "py" }, [Amazon.S3.Model.LifecycleTagPredicate] @{ "Tag"= @{ "Key" = "non-use" "Value" = "yes" } } ) } } "Status"= 'Enabled' NoncurrentVersionExpiration = @{ NoncurrentDays = 75 } } Write-S3LifecycleConfiguration -BucketName amzn-s3-demo-bucket -Configuration_Rule $NewRule

示例 2:此示例通过筛选设置多个规则。$ArchiveRule 将对象设置为 30 天后归档到 Glacier,120 天后归档到 DeepArchive。对于前缀为“py”且 tag:key“archieved”设置为“yes”的对象,$ExpireRule 使当前版本和先前版本在 150 天后到期。

$ExpireRule = [Amazon.S3.Model.LifecycleRule] @{ Expiration = @{ Days= 150 } Id = "Remove-in-150-days" Filter= @{ LifecycleFilterPredicate = [Amazon.S3.Model.LifecycleAndOperator]@{ Operands= @( [Amazon.S3.Model.LifecyclePrefixPredicate] @{ "Prefix" = "py" }, [Amazon.S3.Model.LifecycleTagPredicate] @{ "Tag"= @{ "Key" = "archived" "Value" = "yes" } } ) } } Status= 'Enabled' NoncurrentVersionExpiration = @{ NoncurrentDays = 150 } } $ArchiveRule = [Amazon.S3.Model.LifecycleRule] @{ Expiration = $null Id = "Archive-to-Glacier-in-30-days" Filter= @{ LifecycleFilterPredicate = [Amazon.S3.Model.LifecycleAndOperator]@{ Operands= @( [Amazon.S3.Model.LifecyclePrefixPredicate] @{ "Prefix" = "py" }, [Amazon.S3.Model.LifecycleTagPredicate] @{ "Tag"= @{ "Key" = "reviewed" "Value" = "yes" } } ) } } Status = 'Enabled' NoncurrentVersionExpiration = @{ NoncurrentDays = 75 } Transitions = @( @{ Days = 30 "StorageClass"= 'Glacier' }, @{ Days = 120 "StorageClass"= [Amazon.S3.S3StorageClass]::DeepArchive } ) } Write-S3LifecycleConfiguration -BucketName amzn-s3-demo-bucket -Configuration_Rule $ExpireRule,$ArchiveRule

以下代码示例演示了如何使用 Write-S3Object

Tools for PowerShell V4

示例 1:此命令将单个文件“local-sample.txt”上传到 Amazon S3,同时在存储桶“test-files”中创建键为“sample.txt”的对象。

Write-S3Object -BucketName amzn-s3-demo-bucket -Key "sample.txt" -File .\local-sample.txt

示例 2:此命令将单个文件“sample.txt”上传到 Amazon S3,同时在存储桶“test-files”中创建键为“sample.txt”的对象。如果未提供 -Key 参数,则文件名将用作 S3 对象键。

Write-S3Object -BucketName amzn-s3-demo-bucket -File .\sample.txt

示例 3:此命令将单个文件“local-sample.txt”上传到 Amazon S3,同时在存储桶“test-files”中创建键为“prefix/to/sample.txt”的对象。

Write-S3Object -BucketName amzn-s3-demo-bucket -Key "prefix/to/sample.txt" -File .\local-sample.txt

示例 4:此命令将子目录“Scripts”中的所有文件上传到存储桶“test-files”,并将公用键前缀“SampleScripts”应用于每个对象。每个上传的文件都将有一个键“SampleScripts/filename”,其中“filename”不同。

Write-S3Object -BucketName amzn-s3-demo-bucket -Folder .\Scripts -KeyPrefix SampleScripts\

示例 5:此命令将本地目录“Scripts”中的所有 *.ps1 文件上传到存储桶“test-files”,并将公用键前缀“SampleScripts”应用于每个对象。每个上传的文件都将有一个键“SampleScripts/filename.ps1”,其中“filename”不同。

Write-S3Object -BucketName amzn-s3-demo-bucket -Folder .\Scripts -KeyPrefix SampleScripts\ -SearchPattern *.ps1

示例 6:此命令创建一个新的 S3 对象,其中包含键为“sample.txt”的指定内容字符串。

Write-S3Object -BucketName amzn-s3-demo-bucket -Key "sample.txt" -Content "object contents"

示例 7:此命令上传指定的文件(文件名用作键),并将指定的标签应用于新对象。

Write-S3Object -BucketName amzn-s3-demo-bucket -File "sample.txt" -TagSet @{Key="key1";Value="value1"},@{Key="key2";Value="value2"}

示例 8:此命令以递归方式上传指定的文件夹,并将指定的标签应用于所有新对象。

Write-S3Object -BucketName amzn-s3-demo-bucket -Folder . -KeyPrefix "TaggedFiles" -Recurse -TagSet @{Key="key1";Value="value1"},@{Key="key2";Value="value2"}
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutObject

以下代码示例演示了如何使用 Write-S3ObjectRetention

Tools for PowerShell V4

示例 1:该命令为给定 S3 存储桶中的“testfile.txt”对象启用监管保留模式,直到日期“2019 年 12 月 31 日 00:00:00”。

Write-S3ObjectRetention -BucketName 'amzn-s3-demo-bucket' -Key 'testfile.txt' -Retention_Mode GOVERNANCE -Retention_RetainUntilDate "2019-12-31T00:00:00"
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 PutObjectRetention