

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.

# Auflisten von Objekten in einem versioning-fähigen Bucket
<a name="list-obj-version-enabled-bucket"></a>

Dieser Abschnitt zeigt Beispiele, wie Objektversionen aus einem versioning-fähigen Bucket aufgelistet werden. Amazon S3 speichert Versionsinformationen zu Objekten in der *versions*-Subressource, die dem Bucket zugeordnet ist. Weitere Informationen finden Sie unter [Konfigurationsoptionen für Allzweck-Buckets](UsingBucket.md#bucket-config-options-intro). Um die Objekte in einem versionsfähigen Bucket aufzulisten, benötigen Sie die `ListBucketVersions`-Berechtigung.

## Verwenden der S3-Konsole
<a name="view-object-versions"></a>

Befolgen Sie diese Schritte, um die Amazon-S3-Konsole zu verwenden, um die verschiedenen Versionen eines Objekts anzuzeigen.

**Mehrere Versionen eines Objekts anzeigen**

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 in der Liste **Buckets** den Namen des Buckets aus, der das Objekt enthält.

1. Um eine Liste der Versionen der Objekte in dem Bucket anzuzeigen, wählen Sie den Schalter **Show versions** (Versionen anzeigen). 

   Die Konsole zeigt für jede Objektversion eine eindeutige Versions-ID, das Datum und die Uhrzeit, wann das Objekt erstellt wurde, sowie weitere Eigenschaften an. (Objekte, die in Ihrem Bucket gespeichert waren, bevor Sie den Versioning-Status einrichten, haben die Versions-ID **null**.)

   Um die Objekte ohne die Versionen aufzulisten, wählen Sie den Schalter **List versions (Versionen auflisten)** .

Objektversionen können auch in der Objektübersicht auf der Konsole angezeigt, heruntergeladen und gelöscht werden. Weitere Informationen finden Sie unter [Anzeigen von Objekteigenschaften in der Amazon-S3-Konsole](view-object-properties.md).

**Anmerkung**  
 Um auf Objektversionen zuzugreifen, die älter als 300 Versionen sind, müssen Sie die AWS CLI oder die URL des Objekts verwenden.

**Wichtig**  
Sie können den Löschvorgang für ein Objekt nur rückgängig machen, wenn seine aktuelle Version gelöscht wurde. Es ist nicht möglich, das Löschen einer vorherigen Version eines Objekts rückgängig zu machen, das gelöscht wurde. Weitere Informationen finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).

## Verwenden Sie den AWS SDKs
<a name="list-obj-version-enabled-bucket-sdk-examples"></a>

Die Beispiele in diesem Abschnitt veranschaulichen, wie Sie eine Objektliste aus einem versioning-fähigen Bucket abrufen. Jede Anforderung gibt bis zu 1000 Versionen zurück, sofern Sie keine kleinere Anzahl festlegen. Wenn die Versionen im Bucket dieses Limit überschreiten, senden Sie eine Reihe von Anforderungen, um die Liste aller Versionen abzurufen. Dieser Vorgang zur „seitenweisen“ Rückgabe von Ergebnissen wird als *Paginierung* bezeichnet.

Um zu veranschaulichen, wie Paginierung funktioniert, limitieren die Beispiele jede Antwort auf zwei Objektversionen. Nachdem die erste Seite mit Ergebnissen abgerufen wurde, wird in jedem Beispiel überprüft, ob die Versionsliste abgeschnitten wurde. Wurde sie abgeschnitten, dann wird im Beispiel mit dem seitenweisen Abruf fortgefahren, bis alle Versionen abgerufen wurden. 

**Anmerkung**  
Die folgenden Beispiele funktionieren auch bei einem Bucket, der versioning-fähig ist, oder bei Objekten ohne individuelle Versionen. In solchen Fällen gibt Amazon S3 die Objektliste mit der Versions-ID von `null` zurück.

 Informationen zur Verwendung von anderen AWS SDKs finden Sie im [AWS Developer](https://aws.amazon.com/code/) Center. 

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

Anweisungen zum Erstellen und Testen eines Arbeitsbeispiels finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) im AWS SDK für Java Entwicklerhandbuch.

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListVersionsRequest;
import com.amazonaws.services.s3.model.S3VersionSummary;
import com.amazonaws.services.s3.model.VersionListing;

public class ListKeysVersioningEnabledBucket {

    public static void main(String[] args) {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Retrieve the list of versions. If the bucket contains more versions
            // than the specified maximum number of results, Amazon S3 returns
            // one page of results per request.
            ListVersionsRequest request = new ListVersionsRequest()
                    .withBucketName(bucketName)
                    .withMaxResults(2);
            VersionListing versionListing = s3Client.listVersions(request);
            int numVersions = 0, numPages = 0;
            while (true) {
                numPages++;
                for (S3VersionSummary objectSummary : versionListing.getVersionSummaries()) {
                    System.out.printf("Retrieved object %s, version %s\n",
                            objectSummary.getKey(),
                            objectSummary.getVersionId());
                    numVersions++;
                }
                // Check whether there are more pages of versions to retrieve. If
                // there are, retrieve them. Otherwise, exit the loop.
                if (versionListing.isTruncated()) {
                    versionListing = s3Client.listNextBatchOfVersions(versionListing);
                } else {
                    break;
                }
            }
            System.out.println(numVersions + " object versions retrieved in " + numPages + " pages");
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

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

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.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class ListObjectsVersioningEnabledBucketTest
    {
        static string bucketName = "*** bucket name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 s3Client;

        public static void Main(string[] args)
        {
            s3Client = new AmazonS3Client(bucketRegion);
            GetObjectListWithAllVersionsAsync().Wait();
        }

        static async Task GetObjectListWithAllVersionsAsync()
        {
            try
            {
                ListVersionsRequest request = new ListVersionsRequest()
                {
                    BucketName = bucketName,
                    // You can optionally specify key name prefix in the request
                    // if you want list of object versions of a specific object.

                    // For this example we limit response to return list of 2 versions.
                    MaxKeys = 2
                };
                do
                {
                    ListVersionsResponse response = await s3Client.ListVersionsAsync(request); 
                    // Process response.
                    foreach (S3ObjectVersion entry in response.Versions)
                    {
                        Console.WriteLine("key = {0} size = {1}",
                            entry.Key, entry.Size);
                    }

                    // If response is truncated, set the marker to get the next 
                    // set of keys.
                    if (response.IsTruncated)
                    {
                        request.KeyMarker = response.NextKeyMarker;
                        request.VersionIdMarker = response.NextVersionIdMarker;
                    }
                    else
                    {
                        request = null;
                    }
                } while (request != null);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------

## Verwenden der REST-API
<a name="ListingtheObjectsinaVersioningEnabledBucket"></a>

**Example – Alle Objektversionen in einem Bucket auflisten**  
Um alle Versionen aller Objekte in einem Bucket aufzulisten, verwenden Sie die `versions`-Subressource in einer `GET Bucket`-Anfrage. Amazon S3 kann maximal 1000 Objekte abrufen. Jede Objektversion zählt als vollständiges Objekt. Wenn ein Bucket also zwei Schlüssel enthält (z. B. `photo.gif` und `picture.jpg`) und der erste Schlüssel 990 Versionen und der zweite Schlüssel 400 Versionen hat, ruft eine einzelne Abfrage alle 990 Versionen von `photo.gif` und nur die 10 neuesten Versionen von `picture.jpg` ab.  
Amazon S3 gibt Objektversionen in der Reihenfolge zurück, in der sie gespeichert wurden, wobei die zuletzt gespeicherte zuerst zurückgegeben wird.  
Geben Sie in einer `GET Bucket`-Anforderung die `versions`-Subressource an.  

```
1. GET /?versions HTTP/1.1
2. Host: bucketName.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 +0000
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

**Example – Abruf aller Versionen eines Schlüssels**  
 Wenn Sie eine Untermenge von Objektversionen abrufen möchten, verwenden Sie die Anforderungsparameter für `GET Bucket`. Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html).   

1. Setzen Sie den Parameter `prefix` auf den Schlüssel des Objekts, das Sie abrufen wollen.

1. Senden Sie eine `GET Bucket`-Anforderung unter Verwendung der `versions`-Subressource und `prefix`.

   `GET /?versions&prefix=objectName HTTP/1.1`

**Example – Abrufen von Objekten unter Verwendung eines Präfix**  
Das folgende Beispiel ruft Objekte ab, deren Schlüssel ist oder damit beginn `myObject`.  

```
1. GET /?versions&prefix=myObject HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```
Sie können die anderen Anforderungsparameter verwenden, um eine Untermenge aller Versionen des Objekts abzurufen. Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) in der *API-Referenz zu Amazon Simple Storage Service*.

**Example – Abrufen einer Liste zusätzlicher Objekte, falls die Antwort gekürzt wurde**  
Wenn die Anzahl der Objekte, die in einer `GET`-Anforderung zurückgegeben werden können, den Wert `max-keys` überschreitet, enthält die Antwort `<isTruncated>true</isTruncated>`, ebenso wie den ersten Schlüssel (in `NextKeyMarker`) und die erste Versions-ID (in `NextVersionIdMarker`), die die Anforderungskriterien erfüllen, aber nicht zurückgegeben wurden. Diese zurückgegebenen Werte verwenden Sie als Ausgangspunkt in einer nachfolgenden Anforderung, um die zusätzlichen Objekte abzurufen, die die `GET`-Anforderung erfüllen.   
Gehen Sie wie folgt vor, um zusätzlichen Objekte abzurufen, die die ursprüngliche `GET Bucket versions`-Anforderung von einem Bucket erfüllen. Weitere Informationen zu `key-marker`, `version-id-marker`, `NextKeyMarker` und `NextVersionIdMarker` finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) in *Amazon Simple Storage Service – API-Referenz*.  
Im Folgenden finden Sie zusätzliche Antworten, die die ursprüngliche `GET`-Anforderung erfüllen:  
+ Setzen Sie den Wert von `key-marker` auf den Schlüssel, der in `NextKeyMarker` in der vorherigen Antwort zurückgegeben wurde.
+ Setzen Sie den Wert von `version-id-marker` auf die Versions-ID, die in `NextVersionIdMarker` in der vorherigen Antwort zurückgegeben wurde.
+ Senden Sie eine `GET Bucket versions`-Anforderung mit `key-marker` und `version-id-marker`.

**Example – Abrufen von Objekten ab einem bestimmten Schlüssel und einer bestimmten Versions-ID**  

```
1. GET /?versions&key-marker=myObject&version-id-marker=298459348571 HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

## Verwenden von AWS CLI
<a name="list-obj-version-enabled-bucket-cli"></a>

Der folgende Befehl gibt Metadaten zu allen Versionen der Objekte in einem Bucket zurück. 

```
aws s3api list-object-versions --bucket amzn-s3-demo-bucket1
```

Weitere Informationen zu `list-object-versions` finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/s3api/list-object-versions.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-object-versions.html) in der *AWS CLI -Befehlsreferenz*.