

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Ridenominazione degli oggetti nei bucket di directory
<a name="directory-buckets-objects-rename"></a>

L’operazione `RenameObject` consente di rinominare automaticamente un oggetto esistente in un bucket di directory che utilizza la classe di archiviazione S3 Express One Zone, senza alcun movimento di dati. È possibile rinominare un oggetto specificando il nome dell’oggetto esistente come origine e il nuovo nome dell’oggetto come destinazione all’interno dello stesso bucket di directory. L’operazione API `RenameObject` non ha esito positivo sugli oggetti che terminano con il carattere delimitatore barra (`/`). Per ulteriori informazioni, consulta [Denominazione di oggetti Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html).

L’operazione `RenameObject` viene in genere completata nell’ordine di millisecondi indipendentemente dalla dimensione dell’oggetto. Questa funzionalità accelera applicazioni come la gestione dei file di log, l’elaborazione multimediale e l’analisi dei dati. Inoltre, `RenameObject` conserva tutte le proprietà dei metadati degli oggetti, tra cui la classe di archiviazione, il tipo di crittografia, la data di creazione, la data dell’ultima modifica e le proprietà del checksum.

**Nota**  
L’operazione `RenameObject` è supportata solo per gli oggetti archiviati nella classe di archiviazione S3 Express One Zone.

 Per fornire l’accesso all’operazione `RenameObject`, è consigliabile utilizzare l’operazione `CreateSession` per l’autorizzazione basata sulla sessione. In particolare, si fornisce l’autorizzazione `s3express:CreateSession` al bucket di directory in una policy di bucket o in una policy basata sull’identità. Quindi, si effettua la chiamata API `CreateSession` sul bucket di directory per ottenere un token di sessione. Con il token di sessione nell’intestazione della richiesta, è possibile effettuare richieste API per questa operazione. Dopo la scadenza del token di sessione, si effettua un’altra chiamata API `CreateSession` per generare un nuovo token di sessione da utilizzare. La AWS CLI e AWS SDKs creerà e gestirà la sessione, incluso l'aggiornamento automatico del token di sessione per evitare interruzioni del servizio alla scadenza di una sessione. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) nella *Guida di riferimento delle API di Amazon S3*. Per ulteriori informazioni sulle operazioni API degli endpoint di zona, consulta [Autorizzazione delle operazioni API dell’endpoint di zona con `CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html). 

 Se non desideri sovrascrivere un oggetto esistente, è possibile aggiungere l’intestazione condizionale `If-None-Match` con il valore `‘*’` nella richiesta `RenameObject`. Amazon S3 restituisce un errore `412 Precondition Failed` se il nome dell’oggetto esiste già. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html) nella *documentazione di riferimento delle API di Amazon S3*. 

 `RenameObject` è un’operazione API dell’endpoint di zona (operazione a livello di oggetto o piano dati) che viene registrata nel log in AWS CloudTrail. È possibile utilizzare CloudTrail per raccogliere informazioni sull'`RenameObject`operazione eseguita sugli oggetti nei bucket di directory. Per ulteriori informazioni, vedete [Logging with AWS CloudTrail for directory bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone-logging.html) ed [esempi di file di CloudTrail log per](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-log-files.html) bucket di directory. 

S3 Express One Zone è l’unica classe di archiviazione che supporta `RenameObject`, con un prezzo uguale a quello delle richieste `PUT`, `COPY`, `POST` e `LIST` (per 1.000 richieste) in S3 Express One Zone. Per ulteriori informazioni, consulta [Prezzi di Amazon S3](https://aws.amazon.com/s3/pricing/). 

## Ridenominazione di un oggetto
<a name="directory-bucket-rename"></a>

Per rinominare un oggetto nel tuo bucket di directory, puoi utilizzare la console Amazon S3, l'interfaccia a riga di AWS comando, l'API REST o AWS SDKs Mountpoint per Amazon S3 (versione 1.19.0 o successiva).

### Utilizzo della console S3
<a name="set-rename--console"></a>

**Come rinominare un oggetto in un bucket di directory**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione a sinistra, scegli **Bucket**, quindi seleziona la scheda **Bucket di directory**. Passa al bucket di directory Amazon S3 contenente l’oggetto da rinominare.

1. Seleziona la casella di controllo dell'oggetto da rinominare.

1. Nel menu **Azioni**, scegli **Rinomina oggetto**.

1. Nella casella **Nuovo nome oggetto**, inserisci il nuovo nome dell'oggetto.
**Nota**  
Se specifichi lo stesso nome di un oggetto esistente, l’operazione ha esito negativo e Amazon S3 restituisce un errore `412 Precondition Failed`. La lunghezza del nome della chiave dell’oggetto non può superare 1.024 byte. I prefissi inclusi nel nome dell’oggetto vengono conteggiati ai fini della lunghezza totale. 

1. Scegli **Rinomina l’oggetto**. Amazon S3 rinomina l'oggetto. 

### Utilizzo della AWS CLI
<a name="set-rename--cli"></a>

Gli esempi `rename-object` illustrano in che modo è possibile utilizzare l’ AWS CLI per rinominare un oggetto. Per eseguire questi comandi, sostituiscili {{user input placeholders}} con le tue informazioni

L'esempio seguente mostra come rinominare un oggetto con un controllo condizionale sull'oggetto di origine. ETag 

```
aws s3api rename-object \                                    
    --bucket {{amzn-s3-demo-bucket--usw2-az1--x-s3}} \
    --key {{new-file.txt}} \
    --rename-source {{original-file.txt}} \
    --source-if-match "\"{{a1b7c3d2e5f6}}\""
```

Questo comando funziona nel modo seguente:
+ Rinomina un oggetto da {{original-file.txt}} a {{new-file.txt}} nel bucket di directory. {{amzn-s3-demo-bucket--usw2-az1--x-s3}}
+ Esegue la ridenominazione solo se l'oggetto sorgente ETag corrisponde a "». {{a1b7c3d4e5f6}}

Se ETag non corrisponde, l'operazione avrà esito negativo e verrà `412 Precondition Failed` generato un errore. 

L’esempio seguente mostra come rinominare un oggetto con un controllo condizionale sul nuovo nome dell’oggetto specificato.

```
aws s3api rename-object \
    --bucket {{amzn-s3-demo-bucket--usw2-az1--x-s3}} \
    --key {{new-file.txt}} \
    --rename-source {{amzn-s3-demo-bucket--usw2-az1--x-s3}}/{{original-file.txt}} \
    --destination-if-none-match "\"{{e5f3g7h8i9j0}}\""
```

Questo comando funziona nel modo seguente:
+ Rinomina un oggetto da {{original-file.txt}} a {{new-file.txt}} nel bucket di {{amzn-s3-demo-bucket--usw2-az1--x-s3}} directory.
+ Esegue l'operazione di ridenominazione solo se l'oggetto esiste e ETag non corrisponde a "». {{e5f3g7h8i9j0}}

Se esiste già un oggetto con il nuovo nome specificato e la corrispondenza ETag, l'operazione avrà esito negativo e verrà `412 Precondition Failed` generato un errore. 

### Usando il AWS SDKs
<a name="directory-bucket-rename-sdks"></a>

------
#### [ SDK for Java ]

È possibile utilizzare il AWS SDK per Java per rinominare gli oggetti. Per utilizzare questi esempi, sostituiscili {{user input placeholders}} con le tue informazioni

L'esempio seguente mostra come creare un file `RenameObjectRequest` utilizzando l' AWS SDK for Java

```
String key = "{{key}}";
String newKey = "{{new-key}}";
String expectedETag = "{{e5f3g7h8i9j0}}";
RenameObjectRequest renameRequest = RenameObjectRequest.builder()
    .bucket({{amzn-s3-demo-bucket--usw2-az1--x-s3}})
    .key({{newKey}})
    .renameSource({{key}})
    .destinationIfMatch({{e5f3g7h8i9j0}})
    .build();
```

Il codice effettua le seguenti operazioni:
+ Crea una richiesta per rinominare un oggetto da "" a {{key}} "{{new-key}}" nel bucket di directory. {{amzn-s3-demo-bucket--usw2-az1--x-s3}}
+ Include la condizione che la ridenominazione avvenga solo se l'oggetto ETag corrisponde a "». {{e5f3g7h8i9j0}} 
+ Se ETag non corrisponde o l'oggetto non esiste, l'operazione avrà esito negativo.

L'esempio seguente mostra come creare una condizione `RenameObjectRequest` con una condizione non corrispondente utilizzando l' AWS SDK for Java.

```
String key = "{{key}}";
String newKey = "{{new-key}}";
String noneMatchETag = "{{e5f3g7h8i9j0}}";
RenameObjectRequest renameRequest = RenameObjectRequest.builder()
    .bucket({{amzn-s3-demo-bucket--usw2-az1--x-s3}})
    .key({{newKey}})
    .renameSource({{key}})
    .destinationIfNoneMatch(noneMatchETag)
    .build();
```

Il codice effettua le seguenti operazioni:
+ Crea una richiesta per rinominare un oggetto da "" a "{{key}}{{new-key}}" nel bucket di directory. {{amzn-s3-demo-bucket--usw2-az1--x-s3}}
+ Include una condizione `.destinationIfNoneMatch(noneMatchETag)` che garantisce che la ridenominazione avvenga solo se l'oggetto di destinazione ETag non corrisponde a "». {{e5f3g7h8i9j0}}

L'operazione avrà esito negativo e restituirà un `412 Precondition Failed` errore se esiste un oggetto con il nuovo nome specificato e presenta il nome specificato ETag. 

------
#### [ SDK for Python ]

È possibile utilizzare SDK per Python per rinominare gli oggetti. Per utilizzare questi esempi, sostituisci {{user input placeholders}} con le informazioni appropriate.

L'esempio seguente mostra come rinominare un oggetto utilizzando l' AWS SDK for Python (Boto3).

```
def basic_rename(bucket, source_key, destination_key):
    try:
        s3.rename_object(
            Bucket={{amzn-s3-demo-bucket--usw2-az1--x-s3}},
            Key={{destination_key}},
            RenameSource=f"{{{source_key}}}"
        )
        print(f"Successfully renamed {{{source_key}}} to {{{destination_key}}}")
    except ClientError as e:
        print(f"Error renaming object: {e}")
```

Il codice effettua le seguenti operazioni:
+ Rinomina un oggetto da a nel bucket di directory. {{source\_key}} {{destination\_key}} {{amzn-s3-demo-bucket--usw2-az1--x-s3}}
+ Stampa un messaggio di esito positivo se la ridenominazione dell’oggetto è stata completata o stampa un messaggio di errore se non è riuscita.

L'esempio seguente mostra come rinominare un oggetto con `DestinationIfNoneMatch` le condizioni `SourceIfMatch` and utilizzando l' AWS SDK for Python (Boto3).

```
def rename_with_conditions(bucket, source_key, destination_key, source_etag, dest_etag):
    try:
        s3.rename_object(
            Bucket={{amzn-s3-demo-bucket--usw2-az1--x-s3}},
            Key={{destination_key}},
            RenameSource=f"{{{amzn-s3-demo-bucket--usw2-az1--x-s3}}}/{{{source_key}}}",
            SourceIfMatch={{source_ETag}},
            DestinationIfNoneMatch={{dest_ETag}}
        )
        print(f"Successfully renamed {{{source_key}}} to {{{destination_key}}} with conditions")
    except ClientError as e:
        print(f"Error renaming object: {e}")
```

Il codice effettua le seguenti operazioni:
+ Esegue un’operazione di ridenominazione condizionale e applica due condizioni, `SourceIfMatch` e `DestinationIfNoneMatch`. La combinazione di queste condizioni assicura che l’oggetto non sia stato modificato e che non esista già un oggetto con il nuovo nome specificato. 
+ Rinomina un oggetto da {{source\_key}} a nel bucket di directory. {{destination\_key}} {{amzn-s3-demo-bucket--usw2-az1--x-s3}}
+ Stampa un messaggio di esito positivo se la ridenominazione dell’oggetto è stata completata o stampa un messaggio di errore se non è riuscita o se le condizioni non sono soddisfatte.

------
#### [ SDK for Rust ]

È possibile utilizzare SDK per Rust per rinominare gli oggetti. Per utilizzare questi esempi, sostituisci {{user input placeholders}} con le informazioni appropriate.

L’esempio seguente mostra come rinominare un oggetto nel bucket di directory {{amzn-s3-demo-bucket--usw2-az1--x-s3}} utilizzando SDK per Rust.

```
async fn basic_rename_example(client: &Client) -> Result<(), Box<dyn Error>> {
    let response = client
        .rename_object()
        .bucket(" {{amzn-s3-demo-bucket--usw2-az1--x-s3}}")
        .key("{{new-name.txt}}")  // New name/path for the object
        .rename_source("{{old-name.txt}}")  // Original object name/path
        .send()
        .await?;
    Ok(())
}
```

Il codice effettua le seguenti operazioni:
+ Crea una richiesta per rinominare un oggetto da "" a {{old-name.tx}} "{{new-name.txt}}" nel bucket di directory. {{amzn-s3-demo-bucket--usw2-az1--x-s3}}
+ Restituisce un tipo `Result` per gestire potenziali errori. 

------

### Utilizzo della REST API
<a name="directory-bucket-rename-api"></a>

 Per rinominare un oggetto è possibile inviare richieste REST. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html) nella *documentazione di riferimento delle API di Amazon S3*. 

### Utilizzo di Mountpoint per Amazon S3
<a name="directory-bucket-rename-api"></a>

 A partire dalla versione 1.19.0 o successiva, Mountpoint per Amazon S3 supporta la ridenominazione degli oggetti in S3 Express One Zone. Per ulteriori informazioni su Mountpoint, consulta [Operazioni con Mountpoint](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html).