

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Kategorisierung Ihrer Objekte mit Hilfe von Tags
<a name="object-tagging"></a>

Markieren Sie Objekte, um Speicher zu kategorisieren. Jeder Tag ist ein Schlüssel/Wert-Paar.

Sie können neuen Objekten Markierungen hinzufügen, wenn Sie sie hochladen, Sie können Markierungen aber auch vorhandenen Objekten hinzufügen. 
+ Sie können einem Objekt bis zu 10 Tags zuordnen. Einem Objekt zugeordnete Markierungen müssen eindeutige Tag-Schlüssel haben.
+ Ein Tag-Schlüssel kann bis zu 128 Unicode-Zeichen lang sein, und Tag-Werte können bis zu 256 Unicode-Zeichen lang sein. Amazon-S3-Objekt-Tags werden intern in UTF-16 dargestellt. Beachten Sie, dass Zeichen in UTF-16 entweder 1 oder 2 Zeichenpositionen einnehmen.
+ Bei Schlüsseln und Werten wird die Groß-/Kleinschreibung berücksichtigt.
+ Weitere Informationen zu Tag-Beschränkungen finden Sie unter [Einschränkungen für benutzerdefinierte Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html#allocation-tag-restrictions) im *Benutzerhandbuch für AWS Billing and Cost Management*. Für grundlegende Tag-Beschränkungen siehe [Tag-Beschränkungen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions) im *Amazon-EC2-Benutzerhandbuch*.

**Beispiele**  
Betrachten Sie die folgenden Beispiele für die Markierung:

**Example PHI-Informationen**  
Angenommen, ein Objekt enthält PHI-Daten (Protected Health Information, geschützte Gesundheitsdaten). Sie könnten das Objekt unter Verwendung des folgenden-Schlüssel-Wert-Paares markieren:  

```
PHI=True
```
oder  

```
Classification=PHI
```

**Example Projektdateien**  
Angenommen, Sie speichern Projektdateien in Ihrem S3-Bucket. Sie könnten diese Objekte mit einem Schlüssel namens `Project` und einem Wert markieren, wie nachfolgend gezeigt:  

```
Project=Blue
```

**Example Mehrere Markierungen**  
Sie können einem Objekt mehrere Markierungen hinzufügen, wie nachfolgend gezeigt:  

```
Project=x
Classification=confidential
```

**Schlüsselnamen-Präfixe und -Markierungen**  
Mit Schlüsselnamenpräfixe können Sie auch Speicher kategorisieren. Allerdings sind Präfix-basierte Kategorisierungen eindimensional. Sehen Sie sich die folgenden Objektschlüsselnamen an:

```
photos/photo1.jpg
project/projectx/document.pdf
project/projecty/document2.pdf
```

Dieses Schlüsselnamen haben die Präfixe `photos/`, `project/projectx/` und `project/projecty/`. Diese Präfixe unterstützen eine eindimensionale Kategorisierung. Das bedeutet, alles unter einem Präfix ist eine Kategorie. Beispielsweise identifiziert das Präfix `project/projectx` alle Dokumente, die zu Projekt X gehören.

Mit der Markierung erhalten Sie jetzt eine weitere Dimension. Wenn Sie photo1 in der Kategorie project x anlegen wollen, können Sie das Objekt entsprechend markieren.

**Zusätzliche Vorteile**  
Neben der Datenklassifizierung bietet die Markierung auch noch weitere Vorteile.
+ Objekt-Markierungen bieten eine differenzierte Zugriffskontrolle für Berechtigungen. Sie könnten z. B. einem Benutzer Berechtigungen erteilen, nur Objekte mit bestimmten Markierungen zu lesen.
+ Objekt-Markierungen unterstützen ein differenziertes Objektlebenszyklusmanagement, bei dem Sie in einer Lebenszyklusregel zusätzlich zum Schlüsselnamenpräfix einen auf Markierungen basierenden Filter angeben können.
+ Wenn Sie Amazon-S3-Analysen verwenden, können Sie Filter konfigurieren, um Objekte für die Analyse nach Objekt-Markierungen, nach Schlüsselnamen-Präfix oder nach Präfix und Markierungen zu gruppieren.
+ Sie können CloudWatch Amazon-Metriken auch so anpassen, dass Informationen anhand bestimmter Tag-Filter angezeigt werden. Die folgenden Abschnitte stellen Details bereit.

**Wichtig**  
Es ist akzeptabel, Markierungen zu verwenden, um Objekte mit vertraulichen Daten zu markieren (z. B. personenbezogene Informationen (PII) oder geschützte Gesundheitsinformationen (PHI)). Diese Markierungen sollten jedoch selbst keine vertraulichen Daten enthalten. 

**Hinzufügen von Objekt-Tag-Sätzen zu mehreren Amazon-S3-Objekten mit einer einzigen Anfrage**  
Zum Hinzufügen von Objekt-Tag-Mengen zu mehr als einem Amazon-S3-Objekt mit einer einzelnen Anforderung können Sie S3-Batchoperationen verwenden. Sie stellen S3 Batch Operations eine Liste von Objekten zur Verfügung, für die Vorgänge ausgeführt werden sollen. S3-Batchoperationen rufen die entsprechende API-Operation auf, um die angegebene Operation auszuführen. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen, die Exabytes von Daten enthalten. 

Die Funktion „S3-Batchoperationen“ verfolgt den Fortschritt, versendet Benachrichtigungen und speichert einen detaillierten Abschlussbericht zu allen Aktionen. Sie profitieren von einer vollständig verwalteten, prüfbaren und serverlosen Umgebung. Sie können S3 Batch Operations über die Amazon S3 S3-Konsole, AWS CLI AWS SDKs, oder die REST-API verwenden. Weitere Informationen finden Sie unter [Grundlagen von S3-BatchVorgänge](batch-ops.md#batch-ops-basics).

Weitere Informationen über Objekt-Markierungen finden Sie unter [Verwalten von Objekt-Markierungen](tagging-managing.md).

## API-Operationen für die Objektmarkierung
<a name="tagging-apis"></a>

Amazon S3 unterstützt die folgenden API-Operationen, die spezifisch für das Objekt-Tagging sind:

**Objekt-API-Operationen**
+  [PUT Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html) – Ersetzt Markierungen auf einem Objekt. Sie geben die Markierungen im Anfragerumpf an. Es gibt zwei unterschiedliche Szenarien der Objekt-Tag-Verwaltung unter Verwendung dieser API.
  + Objekt hat keine Markierungen – Mit Hilfe dieser API können Sie einem Objekt verschiedene Markierungen hinzufügen (das Objekt hat keine vorherigen Markierungen).
  + Das Objekt hat eine Menge vorhandener Markierungen – Um die vorhandene Tag-Menge zu ändern, müssen Sie zuerst die vorhandene Tag-Menge abrufen, sie auf der Client-Seite ändern und diese API dann verwenden, um die Tag-Menge zu ersetzen.
**Anmerkung**  
 Wenn Sie diese Anforderung mit einer leeren Tag-Menge senden, löscht Amazon S3 die vorhandene Tag-Menge für das Objekt. Wenn Sie diese Methode verwenden, wird eine Tier 1-Anforderung (PUT) berechnet. Weitere Informationen finden Sie unter [Amazon S3 – Preise](https://d0.awsstatic.com/whitepapers/aws_pricing_overview.pdf).  
Die Anforderung [DELETE Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETEtagging.html) wird empfohlen, weil sie das gleiche Ergebnis liefert, aber keine Kosten verursacht. 
+  [GET Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETtagging.html) – Gibt die einem Objekt zugeordnete Tag-Menge zurück. Amazon S3 gibt die Objekt-Markierungen im Antworttext zurück.
+ [DELETE Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETEtagging.html) – Löscht die mit einem Tag verbundenen Tag-Menge. 

**Andere API-Operationen, die Markieren unterstützen**
+  [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) und [Initiate Multipart Upload](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)– Sie können beim Erstellen von Objekten Markierungen angeben. Sie geben Markierungen unter Verwendung des Anfrage-Headers `x-amz-tagging` an. 
+  [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) – Statt die Tag-Menge zurückzugeben, gibt Amazon S3 den Objekt-Tag-Zähler im `x-amz-tag-count`-Header zurück (nur dann, wenn der Auftraggeber die Berechtigung hat, Markierungen zu lesen), weil die Header-Antwortgröße auf 8 KB begrenzt ist. Wenn Sie die Markierungen anzeigen möchten, erstellen Sie eine weitere Anfrage für die API-Operation [GET Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETtagging.html).
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – Sie können Markierungen in Ihrer POST-Anfrage angeben. 

  So lange die von Ihnen geforderten Markierungen die 8-KB-Größenbeschränkung der HTTP-Anfrageheader nicht überschreitet, können Sie die `PUT Object `-API verwenden, um Objekte mit Markierungen zu erstellen. Wenn die von Ihnen angegebenen Markierungen die Größenbeschränkung des Headers überschreiten, können Sie diese POST-Methode verwenden, wobei Sie die Markierungen in den Rumpf aufnehmen. 

   [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) – Sie können die `x-amz-tagging-directive` in Ihre Anfrage aufnehmen, um Amazon S3 anzuweisen, die Markierungen zu kopieren (Standardverhalten) oder durch eine neue, in der Anfrage angegebene Tag-Menge zu ersetzen. 

Beachten Sie Folgendes:
+ Die S3-Objektmarkierung ist hochgradig konsistent. Weitere Informationen finden Sie unter [Amazon S3-Datenkonsistenzmodell](Welcome.md#ConsistencyModel). 

## Zusätzliche Konfigurationen
<a name="tagging-other-configs"></a>

Dieser Abschnitt erklärt, was die Objektmarkierung für andere Konfigurationen bedeutet.

### Objektmarkierung und Lebenszyklusverwaltung
<a name="tagging-and-lifecycle"></a>

In der Bucket-Lebenszyklus-Konfiguration können Sie einen Filter angeben, um eine Untermenge von Objekten auszuwählen, auf die die Regel anzuwenden ist. Sie können einen Filter basierend auf den Schlüsselnamenpräfixen, Objekt-Markierungen oder beidem angeben. 

Angenommen, Sie speichern Fotos (Rohdaten und im fertigen Format) in Ihrem Amazon-S3-Bucket. Sie könnten diese Objekte wie folgt markieren: 

```
phototype=raw
or
phototype=finished
```

Sie sollten in Erwägung ziehen, die Rohfotos nach ihrer Erstellung auf Amazon Glacier zu archivieren. Sie können eine Lebenszyklusregel mit einem Filter konfigurieren, der die Untermenge der Objekte mit dem Schlüsselnamenpräfix (`photos/`) identifiziert, die ein spezifisches Tag (`phototype=raw`) haben. 

Weitere Informationen finden Sie unter [Verwalten des Lebenszyklus von Objekten](object-lifecycle-mgmt.md). 

### Objektmarkierung und -replikation
<a name="tagging-and-replication"></a>

Wenn Sie auf Ihrem Bucket die Replikation konfiguriert haben, repliziert Amazon S3 Markierungen, sofern Sie Amazon S3 die Berechtigung zum Lesen der Markierungen erteilt haben. Weitere Informationen finden Sie unter [Einrichten einer Live-Replikation – Überblick](replication-how-setup.md).

### Ereignisbenachrichtigungen einer Objektmarkierung
<a name="tagging-and-event-notifications"></a>

Sie können eine Amazon-S3-Ereignisbenachrichtigung einrichten, um benachrichtigt zu werden, wenn eine Objektmarkierung hinzugefügt oder aus einem Objekt gelöscht wird. Der `s3:ObjectTagging:Put`-Ereignistyp benachrichtigt Sie, wenn ein Tag auf einem Objekt PUTiert wird oder wenn ein vorhandener Tag aktualisiert wird. Der `s3:ObjectTagging:Delete`-Ereignistyp benachrichtigt Sie, wenn ein Tag aus einem Objekt entfernt wird. Weitere Informationen finden Sie unter [Aktivieren von Ereignisbenachrichtigungen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-enable-disable-notification-intro.html).

Weitere Informationen über die Objektmarkierung finden Sie in den folgenden Themen:

**Topics**
+ [API-Operationen für die Objektmarkierung](#tagging-apis)
+ [Zusätzliche Konfigurationen](#tagging-other-configs)
+ [Markierungs- und Zugriffskontrollrichtlinien](tagging-and-policies.md)
+ [Verwalten von Objekt-Markierungen](tagging-managing.md)

# Markierungs- und Zugriffskontrollrichtlinien
<a name="tagging-and-policies"></a>

Sie können außerdem Berechtigungsrichtlinien (Bucket- und Benutzerrichtlinien) verwenden, um Berechtigungen für das Objekt-Tagging zu verwalten. Informationen über Richtlinienaktionen finden Sie in den folgenden Themen: 
+  [Objektoperationen](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects) 
+  [Bucket-Operationen](security_iam_service-with-iam.md#using-with-s3-actions-related-to-buckets)

Objekt-Markierungen bieten eine differenzierte Zugriffskontrolle für die Verwaltung von Berechtigungen. Sie können bedingte Berechtigungen basierend auf Objekt-Markierungen erteilen. Amazon S3 unterstützt die folgenden Bedingungsschlüssel, die Sie verwenden können, um bedingte Berechtigungen basierend auf Objekt-Markierungen zu erteilen.
+ `s3:ExistingObjectTag/<tag-key>` – Verwenden Sie diesen Bedingungsschlüssel, um zu überprüfen, ob ein vorhandenes Objekt-Tag den spezifischen Tag-Schlüssel und -Wert besitzt. 
**Anmerkung**  
Wenn Sie Berechtigungen für die `PUT Object`- und `DELETE Object`-Operationen erteilen, wird dieser Bedingungsschlüssel nicht unterstützt. Dies bedeutet, dass Sie keine Richtlinie erstellen können, um einem Benutzer zu gestatten, ein Objekt basierend auf seinen vorhandenen Markierungen zu löschen oder zu überschreiben. 
+ `s3:RequestObjectTagKeys` – Verwenden Sie diesen Bedingungsschlüssel, um die Tag-Schlüssel einzuschränken, die Sie für Objekte zulassen wollen. Dies ist nützlich, wenn Sie Objekten mithilfe der Objektanforderungen PutObjectTagging PutObject AND und POST Tags hinzufügen.
+ `s3:RequestObjectTag/<tag-key>` – Verwenden Sie diesen Bedingungsschlüssel, um die Tag-Schlüssel und -Werte einzuschränken, die Sie für Objekte zulassen wollen. Dies ist nützlich, wenn Sie Objekten mithilfe der Bucket-Anfragen PutObjectTagging PutObject AND und POST Tags hinzufügen.

Eine vollständige Liste der für den Amazon-S3-Service spezifischen Bedingungsschlüssel finden Sie unter [Beispiele für Bucket-Richtlinien mit Bedingungsschlüsseln](amazon-s3-policy-keys.md). Die folgenden Berechtigungsrichtlinien zeigen, wie die Objektmarkierung eine differenzierte Zugriffsberechtigungsverwaltung ermöglicht.

**Example 1: Einem Benutzer nur das Lesen von Objekten gestatten, die einen bestimmten Tag-Schlüssel und -Wert besitzen**  
Die folgende Berechtigungsrichtlinie beschränkt einen Benutzer darauf, nur Objekte zu lesen, die den Tag-Schlüssel und -Wert `environment: production` haben. Diese Richtlinie verwendet den `s3:ExistingObjectTag`-Bedingungsschlüssel, um den Tag-Schlüssel und -Wert anzugeben.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Principal": {
      "AWS": [
        "arn:aws:iam::111122223333:role/JohnDoe"
      ]
    },
    "Effect": "Allow",
    "Action": ["s3:GetObject", "s3:GetObjectVersion"],
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringEquals": 
        {"s3:ExistingObjectTag/environment": "production"}
    }
  }
  ]
}
```

**Example 2: Einschränken, welche Objekt-Tag-Schlüssel Benutzer hinzufügen können**  
Die folgende Berechtigungsrichtlinie erteilt einem Benutzer die Berechtigungen, die `s3:PutObjectTagging`-Aktion auszuführen, die dem Benutzer gestattet, einem vorhandenen Objekt Markierungen hinzuzufügen. Die Bedingung verwendet den Bedingungsschlüssel `s3:RequestObjectTagKeys`, um die zulässigen Tag-Schlüssel zu spezifizieren, z. B. `Owner` oder `CreationDate`. Weitere Informationen finden Sie unter [Erstellen einer Bedingung, die mehrere Schlüsselwerte testet](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) im *IAM-Benutzerhandbuch*.  
Die Richtlinie stellt sicher, dass jeder in der Anfrage angegebene Tag-Schlüssel ein autorisierter Tag-Schlüssel ist. Der `ForAnyValue`-Qualifizierer in der Bedingung stellt sicher, dass mindestens einer der spezifizierten Schlüssel in der Anfrage enthalten ist.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
            "arn:aws:iam::111122223333:role/JohnDoe"
         ]
       },
 "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [
            "Owner",
            "CreationDate"
          ]
        }
      }
    }
  ]
}
```

**Example 3: Einen spezifischen Tag-Schlüssel und -Wert verlangen, wenn Benutzern erlaubt wird, Objekt-Tags hinzuzufügen**  
Die folgende Beispielrichtlinie erteilt einem Benutzer die Berechtigungen, die `s3:PutObjectTagging`-Aktion auszuführen, die dem Benutzer gestattet, einem vorhandenen Objekt Markierungen hinzuzufügen. Die Bedingung verlangt, dass der Benutzer einen spezifischen Tag-Schlüssel (z. B. `Project`) mit dem Wert `X` angibt.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
       "arn:aws:iam::111122223333:user/JohnDoe"
         ]
       },
      "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X"
        }
      }
    }
  ]
}
```



# Verwalten von Objekt-Markierungen
<a name="tagging-managing"></a>

In diesem Abschnitt wird erklärt, wie Sie Objekt-Tags mit der AWS SDKs for Java- und .NET- oder der Amazon S3 S3-Konsole verwalten können.

Mit Hilfe der Objektkennzeichnung können Sie den Speicher in Allzweck-Buckets kategorisieren. Jedes Tag ist ein Schlüssel-Wert-Paar, für das folgende Regeln gelten:
+ Sie können einem Objekt bis zu 10 Tags zuordnen. Einem Objekt zugeordnete Markierungen müssen eindeutige Tag-Schlüssel haben.
+ Ein Tag-Schlüssel kann bis zu 128 Unicode-Zeichen lang sein, und Tag-Werte können bis zu 256 Unicode-Zeichen lang sein. Amazon-S3-Objekt-Tags werden intern in UTF-16 dargestellt. Beachten Sie, dass Zeichen in UTF-16 entweder 1 oder 2 Zeichenpositionen einnehmen.
+ Bei Schlüsseln und Werten wird die Groß-/Kleinschreibung berücksichtigt. 

Weitere Informationen über Objekt-Markierungen finden Sie unter [Kategorisierung Ihrer Objekte mit Hilfe von Tags](object-tagging.md). Weitere Informationen zu Tag-Einschränkungen finden Sie unter [Einschränkungen benutzerdefinierter Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) im *AWS Fakturierung und Kostenmanagement -Benutzerhandbuch*. 

## Verwenden der S3-Konsole
<a name="add-object-tags"></a>

**Hinzufügen von Markern zu einem Objekt**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Allzweck-Buckets** aus.

1. Wählen Sie in der Bucket-Liste den Namen des Buckets aus, der das Objekt enthält.

1. Markieren Sie das Kontrollkästchen links neben den Namen der Objekte, die Sie ändern möchten.

1. Wählen Sie im Menü **Aktionen** die Option **Markierungen bearbeiten**.

1. Überprüfen Sie die aufgelisteten Objekte und wählen Sie **Markierungen hinzufügen**.

1. Jedes Objekt-Tag ist ein Schlüssel-Wert-Paar. Geben Sie einen **Key (Schlüssel)** und einen **Value (Wert)** ein. Um ein weiteres Tag hinzuzufügen, wählen Sie **Add Tag (Tag hinzufügen)**. 

   Sie können bis zu 10 Marker für ein Objekt eingeben.

1. Wählen Sie **Save Changes (Änderungen speichern)**.

   Amazon S3 fügt die Markierungen zu den angegebenen Objekten hinzu.

Weitere Informationen finden Sie auch unter [Anzeigen von Objekteigenschaften in der Amazon-S3-Konsole](view-object-properties.md) und [Objekte hochladen](upload-objects.md) in diesem Handbuch. 

## Verwenden Sie den AWS SDKs
<a name="tagging-manage-sdk"></a>

------
#### [ Java ]

Um Objekt-Tags mit dem AWS SDK for Java zu verwalten, können Sie Tags für ein neues Objekt festlegen und Tags für ein vorhandenes Objekt abrufen oder ersetzen. Weitere Informationen über das Markieren von Objekten finden Sie unter [Kategorisierung Ihrer Objekte mit Hilfe von Tags](object-tagging.md).

Laden Sie ein Objekt mit einem S3Client in einen Bucket hoch und legen Sie Tags fest. Beispiele finden Sie unter [Ein Objekt in einen Bucket hochladen](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObject_section.html) in der *Amazon S3 API Referenz*.

------
#### [ .NET ]

Das folgende Beispiel zeigt, wie Sie mithilfe von AWS SDK für .NET die Tags für ein neues Objekt festlegen und die Tags für ein vorhandenes Objekt abrufen oder ersetzen können. Weitere Informationen über das Markieren von Objekten finden Sie unter [Kategorisierung Ihrer Objekte mit Hilfe von Tags](object-tagging.md). 

Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter [Getting Started with the AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) im *AWS SDK for .NET Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    public class ObjectTagsTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string keyName = "*** key name for the new object ***";
        private const string filePath = @"*** file path ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            PutObjectWithTagsTestAsync().Wait();
        }

        static async Task PutObjectWithTagsTestAsync()
        {
            try
            {
                // 1. Put an object with tags.
                var putRequest = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName,
                    FilePath = filePath,
                    TagSet = new List<Tag>{
                        new Tag { Key = "Keyx1", Value = "Value1"},
                        new Tag { Key = "Keyx2", Value = "Value2" }
                    }
                };

                PutObjectResponse response = await client.PutObjectAsync(putRequest);
                // 2. Retrieve the object's tags.
                GetObjectTaggingRequest getTagsRequest = new GetObjectTaggingRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };

                GetObjectTaggingResponse objectTags = await client.GetObjectTaggingAsync(getTagsRequest);
                for (int i = 0; i < objectTags.Tagging.Count; i++)
                    Console.WriteLine("Key: {0}, Value: {1}", objectTags.Tagging[i].Key, objectTags.Tagging[i].Value);


                // 3. Replace the tagset.

                Tagging newTagSet = new Tagging();
                newTagSet.TagSet = new List<Tag>{
                    new Tag { Key = "Key3", Value = "Value3"},
                    new Tag { Key = "Key4", Value = "Value4" }
                };


                PutObjectTaggingRequest putObjTagsRequest = new PutObjectTaggingRequest()
                {
                    BucketName = bucketName,
                    Key = keyName,
                    Tagging = newTagSet
                };
                PutObjectTaggingResponse response2 = await client.PutObjectTaggingAsync(putObjTagsRequest);

                // 4. Retrieve the object's tags.
                GetObjectTaggingRequest getTagsRequest2 = new GetObjectTaggingRequest();
                getTagsRequest2.BucketName = bucketName;
                getTagsRequest2.Key = keyName;
                GetObjectTaggingResponse objectTags2 = await client.GetObjectTaggingAsync(getTagsRequest2);
                for (int i = 0; i < objectTags2.Tagging.Count; i++)
                    Console.WriteLine("Key: {0}, Value: {1}", objectTags2.Tagging[i].Key, objectTags2.Tagging[i].Value);

            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine(
                        "Error encountered ***. Message:'{0}' when writing an object"
                        , e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(
                    "Encountered an error. Message:'{0}' when writing an object"
                    , e.Message);
            }
        }
    }
}
```

------