Caricare un oggetto in un bucket S3 su Outposts
Gli oggetti sono le entità fondamentali archiviate in Amazon S3 su Outposts. Ogni oggetto è contenuto in un bucket. È necessario utilizzare i punti di accesso per accedere a qualsiasi oggetto in un bucket Outpost. Quando specifichi il bucket per le operazioni di oggetto, utilizza il nome della risorsa Amazon (ARN) o l'alias del punto di accesso. Per ulteriori informazioni sugli alias del punto di accesso, consulta Utilizzo di un alias in stile bucket per il punto di accesso del bucket S3 su Outposts.
Nell'esempio seguente viene illustrato il formato ARN per i punti di accesso S3 su Outposts, che include il codice Regione AWS per la Regione in cui si trova l'Outpost, l'ID Account AWS, l'ID Outpost e il nome del punto di accesso:
arn:aws:s3-outposts:region
:account-id
:outpost/outpost-id
/accesspoint/accesspoint-name
Per ulteriori informazioni sugli ARN S3 su Outposts, consulta ARN delle risorse per S3 su Outposts.
Con Amazon S3 su Outposts, i dati degli oggetti vengono sempre archiviati nell'Outpost. Quando AWS installa un rack Outpost, i tuoi dati rimangono locali nel tuo Outpost per soddisfare i requisiti di residenza dei dati. I tuoi oggetti non lasciano mai il tuo Outpost e non sono in una Regione AWS. Dal momento che la AWS Management Console è ospitata nella regione, non puoi utilizzare la console per caricare o gestire oggetti nel tuo Outpost. Tuttavia, puoi utilizzare l'API REST, AWS Command Line Interface (AWS CLI) e gli SDK AWS per caricare e gestire gli oggetti tramite i punti di accesso.
I seguenti esempi AWS CLI e AWS SDK for Java illustrano come caricare un oggetto in un bucket S3 su Outposts utilizzando un punto di accesso.
- AWS CLI
-
Nell'esempio seguente viene inserito un oggetto denominato sample-object.xml
in un bucket S3 su Outposts (s3-outposts:PutObject
) utilizzando AWS CLI. Per usare questo comando, sostituire user input placeholder
con le proprie informazioni. Per ulteriori informazioni su questo comando, consulta put-object nella Guida di riferimento di AWS CLI.
aws s3api put-object --bucket arn:aws:s3-outposts:Region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outposts-access-point
--key sample-object.xml
--body sample-object.xml
- SDK for Java
-
Nell'esempio seguente viene inserito un oggetto in un bucket S3 su Outposts utilizzando SDK per Java. Per utilizzare questo esempio, sostituire user input
placeholder
con le tue informazioni.
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import java.io.File;
public class PutObject {
public static void main(String[] args) {
String accessPointArn = "*** access point ARN ***";
String stringObjKeyName = "*** String object key name ***
";
String fileObjKeyName = "*** File object key name ***
";
String fileName = "*** Path to file to upload ***
";
try {
// This code expects that you have AWS credentials set up per:
// https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.enableUseArnRegion()
.build();
// Upload a text string as a new object.
s3Client.putObject(accessPointArn, stringObjKeyName, "Uploaded String Object");
// Upload a file as a new object with ContentType and title specified.
PutObjectRequest request = new PutObjectRequest(accessPointArn, fileObjKeyName, new File(fileName));
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("plain/text");
metadata.addUserMetadata("title", "someTitle");
request.setMetadata(metadata);
s3Client.putObject(request);
} 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();
}
}
}