

文档 AWS SDK 示例 GitHub 存储库中还有更多 [S AWS DK 示例](https://github.com/awsdocs/aws-doc-sdk-examples)。

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

# 使用适用于 PowerShell V4 的工具的 Amazon S3 示例
<a name="powershell_4_s3_code_examples"></a>

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

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

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

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `Copy-S3Object`
<a name="s3_CopyObject_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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:\$1downloads\$1data\$1archive.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 参考 (V* 4) [CopyObject](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3ACL`
<a name="s3_GetACL_powershell_4_topic"></a>

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

**适用于 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 Reference (V4)》**中的 [GetACL](https://docs.aws.amazon.com/powershell/v4/reference)。

### `Get-S3Bucket`
<a name="s3_ListBuckets_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回所有 S3 存储桶。**  

```
Get-S3Bucket
```
**示例 2：此命令返回名为“test-files”的存储桶**  

```
Get-S3Bucket -BucketName amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [ListBuckets](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketAccelerateConfiguration`
<a name="s3_GetBucketAccelerateConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：如果为指定的存储桶启用了传输加速设置，则此命令将返回值 Enabled。**  

```
Get-S3BucketAccelerateConfiguration -BucketName 'amzn-s3-demo-bucket'
```
**输出**：  

```
Value                                  
-----                                    
Enabled
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketAccelerateConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketAnalyticsConfiguration`
<a name="s3_GetBucketAnalyticsConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回给定 S3 存储桶中名为“testfilter”的分析筛选条件的详细信息。**  

```
Get-S3BucketAnalyticsConfiguration -BucketName 'amzn-s3-demo-bucket' -AnalyticsId 'testfilter'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketAnalyticsConfigurationList`
<a name="s3_ListBucketAnalyticsConfigurations_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回给定 S3 存储桶的前 100 个分析配置。**  

```
Get-S3BucketAnalyticsConfigurationList -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketEncryption`
<a name="s3_GetBucketEncryption_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回与给定存储桶关联的所有服务器端加密规则。**  

```
Get-S3BucketEncryption -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketEncryption](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketInventoryConfiguration`
<a name="s3_GetBucketInventoryConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回给定 S3 存储桶的名为“testinventory”的清单的详细信息。**  

```
Get-S3BucketInventoryConfiguration -BucketName 'amzn-s3-demo-bucket' -InventoryId 'testinventory'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketInventoryConfigurationList`
<a name="s3_ListBucketInventoryConfigurations_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回给定 S3 存储桶的前 100 个清单配置。**  

```
Get-S3BucketInventoryConfigurationList -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketLocation`
<a name="s3_GetBucketLocation_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：如果存在约束，则此命令返回存储桶“amzn-s3-demo-bucket”的位置约束。**  

```
Get-S3BucketLocation -BucketName 'amzn-s3-demo-bucket'
```
**输出**：  

```
Value
-----
ap-south-1
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketLocation](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketLogging`
<a name="s3_GetBucketLogging_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回指定存储桶的日志记录状态。**  

```
Get-S3BucketLogging -BucketName 'amzn-s3-demo-bucket'
```
**输出**：  

```
TargetBucketName   Grants TargetPrefix
----------------   ------ ------------
testbucket1        {}     testprefix
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketLogging](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketMetricsConfiguration`
<a name="s3_GetBucketMetricsConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回有关给定 S3 存储桶的名为“testfilter”的指标筛选条件的详细信息。**  

```
Get-S3BucketMetricsConfiguration -BucketName 'amzn-s3-demo-bucket' -MetricsId 'testfilter'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketNotification`
<a name="s3_GetBucketNotification_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketNotification](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketPolicy`
<a name="s3_GetBucketPolicy_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令输出与给定 S3 存储桶关联的存储桶策略。**  

```
Get-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketPolicy](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketPolicyStatus`
<a name="s3_GetBucketPolicyStatus_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回给定 S3 存储桶的策略状态，此状态指示存储桶是否为公有存储桶。**  

```
Get-S3BucketPolicyStatus -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketPolicyStatus](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketReplication`
<a name="s3_GetBucketReplication_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：返回在名为“amzn-s3-demo-bucket”的存储桶上设置的复制配置信息。**  

```
Get-S3BucketReplication -BucketName amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketReplication](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketRequestPayment`
<a name="s3_GetBucketRequestPayment_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：返回名为“amzn-s3-demo-bucket”的存储桶的请求付款配置。默认情况下，存储桶拥有者支付从存储桶进行下载的费用。**  

```
Get-S3BucketRequestPayment -BucketName amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketRequestPayment](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketTagging`
<a name="s3_GetBucketTagging_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回与给定存储桶关联的所有标签。**  

```
Get-S3BucketTagging -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketTagging](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketVersioning`
<a name="s3_GetBucketVersioning_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回与给定存储桶相关的版本控制状态。**  

```
Get-S3BucketVersioning -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketVersioning](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3BucketWebsite`
<a name="s3_GetBucketWebsite_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令返回给定 S3 存储桶的静态网站配置的详细信息。**  

```
Get-S3BucketWebsite -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetBucketWebsite](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3CORSConfiguration`
<a name="s3_GetCORSConfiguration_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 : {}
```
+  有关 API 的详细信息，请参阅 [Get CORSConfiguration in AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/v4/reference) *Cmdlet 参考 (V4)*。

### `Get-S3LifecycleConfiguration`
<a name="s3_GetLifecycleConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此示例检索存储桶的生命周期配置。**  

```
Get-S3LifecycleConfiguration -BucketName amzn-s3-demo-bucket
```
**输出**：  

```
Rules
-----
{Remove-in-150-days, Archive-to-Glacier-in-30-days}
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetLifecycleConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3Object`
<a name="s3_ListObjects_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [ListObjects](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3ObjectLockConfiguration`
<a name="s3_GetObjectLockConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：如果为给定的 S3 存储桶启用了对象锁定配置，则此命令将返回值“Enabled”。**  

```
Get-S3ObjectLockConfiguration -BucketName 'amzn-s3-demo-bucket' -Select ObjectLockConfiguration.ObjectLockEnabled
```
**输出**：  

```
Value
-----
Enabled
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetObjectLockConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3ObjectMetadata`
<a name="s3_GetObjectMetadata_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetObjectMetadata](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3ObjectRetention`
<a name="s3_GetObjectRetention_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令返回保留对象之前的模式和日期。**  

```
Get-S3ObjectRetention -BucketName 'amzn-s3-demo-bucket' -Key 'testfile.txt'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetObjectRetention](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3ObjectTagSet`
<a name="s3_GetObjectTagging_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该示例返回与给定 S3 存储桶上存在的对象关联的标签。**  

```
Get-S3ObjectTagSet -Key 'testfile.txt' -BucketName 'amzn-s3-demo-bucket'
```
**输出**：  

```
Key  Value
---  -----
test value
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetObjectTagging](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3PreSignedURL`
<a name="s3_GetPreSignedURL_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) 中的[GetPreSigned网址](https://docs.aws.amazon.com/powershell/v4/reference)。

### `Get-S3PublicAccessBlock`
<a name="s3_GetPublicAccessBlock_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令返回给定 S3 存储桶的公共访问权限屏蔽设置。**  

```
Get-S3PublicAccessBlock -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetPublicAccessBlock](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Get-S3Version`
<a name="s3_ListVersions_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [ListVersions](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `New-S3Bucket`
<a name="s3_PutBucket_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucket](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Read-S3Object`
<a name="s3_GetObject_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [GetObject](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3Bucket`
<a name="s3_DeleteBucket_powershell_4_topic"></a>

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

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

```
Remove-S3Bucket -BucketName amzn-s3-demo-bucket -DeleteBucketContent
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucket](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketAnalyticsConfiguration`
<a name="s3_DeleteBucketAnalyticsConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令移除给定 S3 存储桶中名为“testfilter”的分析筛选条件。**  

```
Remove-S3BucketAnalyticsConfiguration -BucketName 'amzn-s3-demo-bucket' -AnalyticsId 'testfilter'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketEncryption`
<a name="s3_DeleteBucketEncryption_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketEncryption](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketInventoryConfiguration`
<a name="s3_DeleteBucketInventoryConfiguration_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketMetricsConfiguration`
<a name="s3_DeleteBucketMetricsConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令移除给定 S3 存储桶中名为“testmetrics”的指标筛选条件。**  

```
Remove-S3BucketMetricsConfiguration -BucketName 'amzn-s3-demo-bucket' -MetricsId 'testmetrics'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketPolicy`
<a name="s3_DeleteBucketPolicy_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令移除与给定 S3 存储桶关联的存储桶策略。**  

```
Remove-S3BucketPolicy -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketPolicy](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketReplication`
<a name="s3_DeleteBucketReplication_powershell_4_topic"></a>

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

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

```
Remove-S3BucketReplication -BucketName amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketReplication](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketTagging`
<a name="s3_DeleteBucketTagging_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketTagging](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3BucketWebsite`
<a name="s3_DeleteBucketWebsite_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteBucketWebsite](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3CORSConfiguration`
<a name="s3_DeleteCORSConfiguration_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考文档 (V* 4) CORSConfiguration 中的[删除](https://docs.aws.amazon.com/powershell/v4/reference)。

### `Remove-S3LifecycleConfiguration`
<a name="s3_DeleteLifecycleConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令移除给定 S3 存储桶的所有生命周期规则。**  

```
Remove-S3LifecycleConfiguration -BucketName 'amzn-s3-demo-bucket'
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteLifecycleConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3MultipartUpload`
<a name="s3_AbortMultipartUpload_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [AbortMultipartUpload](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3Object`
<a name="s3_DeleteObjects_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteObjects](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3ObjectTagSet`
<a name="s3_DeleteObjectTagging_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeleteObjectTagging](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Remove-S3PublicAccessBlock`
<a name="s3_DeletePublicAccessBlock_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令关闭给定存储桶的屏蔽公共访问权限配置。**  

```
Remove-S3PublicAccessBlock -BucketName 'amzn-s3-demo-bucket' -Force -Select '^BucketName'
```
**输出**：  

```
amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [DeletePublicAccessBlock](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Set-S3BucketEncryption`
<a name="s3_PutBucketEncryption_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketEncryption](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Test-S3Bucket`
<a name="s3_Test-S3Bucket_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：如果存储桶存在，此命令返回 True，否则返回 False。即使存储桶不属于该用户，该命令也会返回 True。**  

```
Test-S3Bucket -BucketName amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [Test-S3Bucket](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketAccelerateConfiguration`
<a name="s3_PutBucketAccelerateConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令为给定 S3 存储桶启用传输加速。**  

```
$statusVal = New-Object Amazon.S3.BucketAccelerateStatus('Enabled')
Write-S3BucketAccelerateConfiguration -BucketName 'amzn-s3-demo-bucket' -AccelerateConfiguration_Status $statusVal
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketNotification`
<a name="s3_PutBucketNotification_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketNotification](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketReplication`
<a name="s3_PutBucketReplication_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketReplication](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketRequestPayment`
<a name="s3_PutBucketRequestPayment_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：更新名为“amzn-s3-demo-bucket”的存储桶的请求付款配置，以便向从该存储桶请求下载的人员收取下载费用。默认情况下，存储桶拥有者支付下载的费用。要将请求付款设置回默认值，请使用 “BucketOwner” 作为 RequestPaymentConfiguration \$1Payer 参数。**  

```
Write-S3BucketRequestPayment -BucketName amzn-s3-demo-bucket -RequestPaymentConfiguration_Payer Requester
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketRequestPayment](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketTagging`
<a name="s3_PutBucketTagging_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此命令将两个标签应用于名为 `cloudtrail-test-2018` 的存储桶：一个标签的键为 Stage，值为 Test；另一个标签的键为 Environment，值为 Alpha。要验证标签已添加到存储桶，请运行 `Get-S3BucketTagging -BucketName bucket_name`。结果应显示您在第一个命令中应用于存储桶的标签。请注意，`Write-S3BucketTagging` 会覆盖在存储桶上的整个现有标签集。要添加或删除各标签，请运行资源组和标记 API cmdlet `Add-RGTResourceTag` 和 `Remove-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 参考 (V* 4) [PutBucketTagging](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketVersioning`
<a name="s3_PutBucketVersioning_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：该命令为给定 S3 存储桶启用版本控制。**  

```
Write-S3BucketVersioning -BucketName 'amzn-s3-demo-bucket' -VersioningConfig_Status Enabled
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketVersioning](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3BucketWebsite`
<a name="s3_PutBucketWebsite_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutBucketWebsite](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3LifecycleConfiguration`
<a name="s3_PutLifecycleConfiguration_powershell_4_topic"></a>

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

**适用于 PowerShell V4 的工具**  
**示例 1：此示例写入/替换 \$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：此示例使用筛选设置了多个规则。 \$1 ArchiveRule 将对象设置为在 30 天内存档到 Glacier，120 天后存档到 Glacier DeepArchive。 对于前缀为 “py” 且标签：key “已存档” 设置为 “是” 的对象，\$1将在 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
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutLifecycleConfiguration](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3Object`
<a name="s3_PutObject_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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：此命令将本地目录 “脚本” 中的所有\$1.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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutObject](https://docs.aws.amazon.com/powershell/v4/reference)中的。

### `Write-S3ObjectRetention`
<a name="s3_PutObjectRetention_powershell_4_topic"></a>

以下代码示例演示了如何使用 `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 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [PutObjectRetention](https://docs.aws.amazon.com/powershell/v4/reference)中的。