View a markdown version of this page

使用适用于 PowerShell V4 的工具的 Amazon S3 示例 - Amazon Tools for PowerShell (版本 4)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Tools for PowerShell V4 的支持已到期。

我们建议您迁移到 Amazon Tools for PowerShell V5 。有关如何迁移的更多详细信息和信息,请参阅我们的终止支持公告

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用适用于 PowerShell V4 的工具的 Amazon S3 示例

以下代码示例向您展示了如何使用带有 Amazon S3 的 Amazon Tools for PowerShell V4 来执行操作和实现常见场景。

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

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

主题

操作

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) CopyObject中的。

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

适用于 PowerShell V4 的工具

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

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

输出

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

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

适用于 PowerShell V4 的工具

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

Get-S3Bucket

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

Get-S3Bucket -BucketName amzn-s3-demo-bucket
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) ListBuckets中的。

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

适用于 PowerShell V4 的工具

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

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

输出

Value ----- Enabled

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

Get-S3BucketEncryption -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketEncryption中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

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

输出

Value ----- ap-south-1
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketLocation中的。

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

适用于 PowerShell V4 的工具

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

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

输出

TargetBucketName Grants TargetPrefix ---------------- ------ ------------ testbucket1 {} testprefix
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketLogging中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketNotification中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketPolicy中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketPolicyStatus -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketPolicyStatus中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketReplication -BucketName amzn-s3-demo-bucket
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketReplication中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketRequestPayment -BucketName amzn-s3-demo-bucket
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketRequestPayment中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketTagging -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketTagging中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketVersioning -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketVersioning中的。

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

适用于 PowerShell V4 的工具

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

Get-S3BucketWebsite -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetBucketWebsite中的。

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

适用于 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 : {}

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

适用于 PowerShell V4 的工具

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

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

输出

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

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) ListObjects中的。

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

适用于 PowerShell V4 的工具

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

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

输出

Value ----- Enabled

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetObjectMetadata中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

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

输出

Key Value --- ----- test value
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetObjectTagging中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) 中的GetPreSigned网址

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

适用于 PowerShell V4 的工具

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

Get-S3PublicAccessBlock -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetPublicAccessBlock中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) ListVersions中的。

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

适用于 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:此命令使用创建名为 “amzn-s3-demo-bucket-use1-az5-x-s3” 的新目录存储桶。 PutBucketConfiguration

$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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) PutBucket中的。

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

适用于 PowerShell V4 的工具

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

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

示例 2:此命令从存储桶 “amzn-s3-demo-bucket” 中检索虚拟目录 “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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) GetObject中的。

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

适用于 PowerShell V4 的工具

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

Remove-S3Bucket -BucketName amzn-s3-demo-bucket -DeleteBucketContent
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteBucket中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteBucketEncryption中的。

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

适用于 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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

Remove-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteBucketPolicy中的。

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

适用于 PowerShell V4 的工具

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

Remove-S3BucketReplication -BucketName amzn-s3-demo-bucket
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteBucketReplication中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteBucketTagging中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteBucketWebsite中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考文档 (V 4) CORSConfiguration 中的删除

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

适用于 PowerShell V4 的工具

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

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

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) AbortMultipartUpload中的。

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

适用于 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.S3 ObjectVersion 实例的集合传送到 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteObjects中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeleteObjectTagging中的。

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

适用于 PowerShell V4 的工具

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

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

输出

amzn-s3-demo-bucket
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) DeletePublicAccessBlock中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

Test-S3Bucket -BucketName amzn-s3-demo-bucket
  • 有关 API 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) Test-S3Bucket中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

示例 1:此示例为 S3 事件配置 SNS 主题配置 ObjectRemovedDelete 并启用给定 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) PutBucketNotification中的。

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

适用于 PowerShell V4 的工具

示例 1:此示例使用一条规则设置复制配置,允许将存储桶 “amzn-s3-demo-bucket” 中使用密钥名称前缀 “” 创建的任何新对象复制到 “amzn-s3-demo-bucket” 存储桶。TaxDocs

$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:此示例设置了具有多个规则的复制配置,允许将使用密钥名称前缀 “” 或 “” 创建的任何新对象复制到 “amzn-s3-demo-bucket” 存储桶。TaxDocs OtherDocs键前缀不得重叠。

$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:此示例更新了指定存储桶上的复制配置,以禁用控制将密钥名称前缀 “” 的对象复制到存储桶 “amzn-s3-demo-bucketTaxDocs” 的规则。

$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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) PutBucketReplication中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

示例 1:此命令将两个标签应用于名为 cloudtrail-test-2018 的存储桶:一个标签的键为 Stage,值为 Test;另一个标签的键为 Environment,值为 Alpha。要验证标签已添加到存储桶,请运行 Get-S3BucketTagging -BucketName bucket_name。结果应显示您在第一个命令中应用于存储桶的标签。请注意,Write-S3BucketTagging 会覆盖在存储桶上的整个现有标签集。要添加或删除各标签,请运行资源组和标记 API cmdlet Add-RGTResourceTagRemove-RGTResourceTag。或者,使用 Amazon 管理控制台中的标签编辑器来管理 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) PutBucketTagging中的。

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

适用于 PowerShell V4 的工具

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

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

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

适用于 PowerShell V4 的工具

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

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

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

适用于 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 天后存档到 Glacier DeepArchive。 对于前缀为 “py” 且标签:key “已存档” 设置为 “是” 的对象,$将在 150 天后ExpireRule 过期当前版本和先前版本

$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

适用于 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,在存储桶 “测试文件” 中创建密钥为 “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”,其中 “文件名” 会有所不同。

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

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

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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) PutObject中的。

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

适用于 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 的详细信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考 (V 4) PutObjectRetention中的。