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à.
Utilizzo Multi-Region degli access point con operazioni API supportate
Amazon S3 fornisce una serie di operazioni per gestire gli Multi-Region access point. Amazon S3 elabora alcune di queste operazioni in modo sincrono e alcune in modo asincrono. Quando richiami un'operazione asincrona, per prima cosa Amazon S3 autorizza in modo sincrono l'operazione richiesta. Se l'autorizzazione ha esito positivo, Amazon S3 restituisce un token che puoi utilizzare per monitorare lo stato di avanzamento e i risultati dell'operazione richiesta.
Le richieste effettuate tramite la console Amazon S3 sono sempre sincrone. La console attende il completamento della richiesta prima di consentire l'invio di un'altra richiesta.
Puoi visualizzare lo stato attuale e i risultati delle operazioni asincrone utilizzando la console oppure puoi utilizzare DescribeMultiRegionAccessPointOperation gli AWS SDK o l'API AWS CLI REST. Amazon S3 fornisce un token di tracciamento nella risposta a un'operazione asincrona. Includi quel token di tracciamento come argomento per DescribeMultiRegionAccessPointOperation. Quando includi il token di monitoraggio, Amazon S3 restituisce lo stato corrente e i risultati dell'operazione specificata, inclusi eventuali errori o informazioni pertinenti sulla risorsa. Amazon S3 esegue le operazioni DescribeMultiRegionAccessPointOperation in modo sincrono.
Tutte le richieste del piano di controllo per creare o gestire punti di Multi-Region accesso devono essere indirizzate alla regione. US West (Oregon) Per le richieste relative al piano dati degli Multi-Region Access Point, non è necessario specificare le regioni. Per il piano di controllo del failover dell' Multi-Region Access Point, la richiesta deve essere indirizzata a una delle cinque regioni supportate. Per ulteriori informazioni sulle regioni supportate Multi-Region dagli Access Point, vedere. Multi-Region Restrizioni e limitazioni dell'Access Point
Inoltre, è necessario concedere l's3:ListAllMyBucketsautorizzazione all'utente, al ruolo o all'altra entità AWS Identity and Access Management (IAM) che effettua una richiesta per gestire un Multi-Region Access Point.
I seguenti esempi dimostrano come utilizzare gli Multi-Region Access Point con operazioni compatibili in Amazon S3.
Multi-Region Compatibilità degli Access Point con Servizi AWS and AWS SDK
Per utilizzare un Multi-Region Access Point con applicazioni che richiedono un nome di bucket Amazon S3, utilizza l'Amazon Resource Name (ARN) dell' Multi-Region Access Point quando effettui richieste utilizzando un SDK. AWS Per verificare quali AWS SDK sono compatibili con gli Multi-Region Access Point, consulta Compatibilità con gli SDK. AWS
Multi-Region Compatibilità degli Access Point con le operazioni S3
Puoi utilizzare le seguenti operazioni API del piano dati di Amazon S3 per eseguire azioni sugli oggetti nei bucket associati al tuo Multi-Region Access Point. Le seguenti operazioni S3 possono accettare ARN di Multi-Region Access Point:
Multi-Region Gli Access Points supportano le operazioni di copia utilizzando gli Multi-Region Access Point solo come destinazione quando si utilizza l' Multi-Region Access Point ARN.
Puoi utilizzare le seguenti operazioni sul piano di controllo di Amazon S3 per creare e gestire i tuoi Multi-Region Access Point:
Visualizza la configurazione di routing del tuo Multi-Region Access Point
- AWS CLI
-
Il comando di esempio seguente recupera la configurazione del percorso dell' Multi-Region Access Point in modo da poter visualizzare gli stati di routing correnti per i bucket. Per utilizzare questo comando di esempio, sostituisci user input
placeholders con le tue informazioni.
aws s3control get-multi-region-access-point-routes
--region eu-west-1
--account-id 111122223333
--mrap arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap
- SDK for Java
-
Il seguente codice SDK per Java recupera la configurazione del percorso dell' Multi-Region Access Point in modo da poter visualizzare gli stati di routing correnti per i bucket. Per utilizzare questa sintassi di esempio, sostituisci user input
placeholders con le tue informazioni.
S3ControlClient s3ControlClient = S3ControlClient.builder()
.region(Region.US_EAST_1)
.credentialsProvider(credentialsProvider)
.build();
GetMultiRegionAccessPointRoutesRequest request = GetMultiRegionAccessPointRoutesRequest.builder()
.accountId("111122223333")
.mrap("arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap")
.build();
GetMultiRegionAccessPointRoutesResponse response = s3ControlClient.getMultiRegionAccessPointRoutes(request);
- SDK for JavaScript
-
Il seguente SDK per il JavaScript codice recupera la configurazione del percorso dell' Multi-Region Access Point in modo da poter visualizzare gli stati di routing correnti per i bucket. Per utilizzare questa sintassi di esempio, sostituisci user input
placeholders con le tue informazioni.
const REGION = 'us-east-1'
const s3ControlClient = new S3ControlClient({
region: REGION
})
export const run = async () => {
try {
const data = await s3ControlClient.send(
new GetMultiRegionAccessPointRoutesCommand({
AccountId: '111122223333',
Mrap: 'arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap',
})
)
console.log('Success', data)
return data
} catch (err) {
console.log('Error', err)
}
}
run()
- SDK for Python
-
Il seguente codice SDK per Python recupera la configurazione del percorso dell' Multi-Region Access Point in modo che tu possa vedere gli stati di routing correnti per i tuoi bucket. Per utilizzare questa sintassi di esempio, sostituisci user input
placeholders con le tue informazioni.
s3.get_multi_region_access_point_routes(
AccountId=111122223333,
Mrap=arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap)['Routes']
Aggiornare la policy di bucket Amazon S3 sottostante
Per garantire un accesso adeguato, devi anche aggiornare la policy di bucket Amazon S3 sottostante. Gli esempi seguenti delegano il controllo degli accessi alla policy Access Point. Multi-Region Dopo aver delegato il controllo degli accessi alla policy Multi-Region Access Point, la policy bucket non viene più utilizzata per il controllo degli accessi quando le richieste vengono effettuate tramite l' Multi-Region Access Point.
Ecco un esempio di policy bucket che delega il controllo degli accessi alla policy Access Point. Multi-Region Per utilizzare questa policy di bucket, sostituisci user input
placeholders con le tue informazioni. Per applicare questa politica tramite il AWS CLI put-bucket-policy comando, come mostrato nell'esempio successivo, salva la politica in un file, ad esempio,. policy.json
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::444455556666:root"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*"
],
"Condition": {
"StringEquals": {
"s3:DataAccessPointAccount": "444455556666"
}
}
}
]
}
Il seguente comando di esempio put-bucket-policy associa la policy del bucket S3 aggiornata al bucket S3:
aws s3api put-bucket-policy
--bucket amzn-s3-demo-bucket
--policy file:///tmp/policy.json
Aggiornare la configurazione del percorso di un Multi-Region Access Point
Il comando di esempio seguente aggiorna la configurazione del percorso dell' Multi-Region Access Point. Multi-Region I comandi di route dell'Access Point possono essere eseguiti nelle seguenti cinque regioni:
-
ap-southeast-2
-
ap-northeast-1
-
us-east-1
-
us-west-2
-
eu-west-1
In una configurazione di routing di Multi-Region Access Point, è possibile impostare i bucket su uno stato di routing attivo o passivo. A differenza dei bucket passivi, i bucket attivi ricevono traffico. È possibile impostare lo stato di instradamento di un bucket impostando il valore TrafficDialPercentage del bucket su 100 per attivo o su 0 per passivo.
- AWS CLI
-
Il comando di esempio seguente aggiorna la configurazione di routing dell' Multi-Region Access Point. In questo esempio, amzn-s3-demo-bucket1 è impostato sullo stato attivo e amzn-s3-demo-bucket2 su passivo. Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni.
aws s3control submit-multi-region-access-point-routes
--region ap-southeast-2
--account-id 111122223333
--mrap arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap
--route-updates Bucket=amzn-s3-demo-bucket1,TrafficDialPercentage=100
Bucket=amzn-s3-demo-bucket2,TrafficDialPercentage=0
- SDK for Java
-
Il seguente codice SDK per Java aggiorna la configurazione di routing dell' Multi-Region Access Point. Per utilizzare questa sintassi di esempio, sostituisci user input
placeholders con le tue informazioni.
S3ControlClient s3ControlClient = S3ControlClient.builder()
.region(Region.ap-southeast-2)
.credentialsProvider(credentialsProvider)
.build();
SubmitMultiRegionAccessPointRoutesRequest request = SubmitMultiRegionAccessPointRoutesRequest.builder()
.accountId("111122223333")
.mrap("arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap")
.routeUpdates(
MultiRegionAccessPointRoute.builder()
.region("eu-west-1")
.trafficDialPercentage(100)
.build(),
MultiRegionAccessPointRoute.builder()
.region("ca-central-1")
.bucket("111122223333")
.trafficDialPercentage(0)
.build()
)
.build();
SubmitMultiRegionAccessPointRoutesResponse response = s3ControlClient.submitMultiRegionAccessPointRoutes(request);
- SDK for JavaScript
-
Il seguente SDK per il JavaScript codice aggiorna la configurazione del percorso dell' Multi-Region Access Point. Per utilizzare questa sintassi di esempio, sostituisci user input
placeholders con le tue informazioni.
const REGION = 'ap-southeast-2'
const s3ControlClient = new S3ControlClient({
region: REGION
})
export const run = async () => {
try {
const data = await s3ControlClient.send(
new SubmitMultiRegionAccessPointRoutesCommand({
AccountId: '111122223333',
Mrap: 'arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap',
RouteUpdates: [
{
Region: 'eu-west-1',
TrafficDialPercentage: 100,
},
{
Region: 'ca-central-1',
Bucket: 'amzn-s3-demo-bucket1',
TrafficDialPercentage: 0,
},
],
})
)
console.log('Success', data)
return data
} catch (err) {
console.log('Error', err)
}
}
run()
- SDK for Python
-
Il seguente codice SDK per Python aggiorna la configurazione del percorso dell' Multi-Region Access Point. Per utilizzare questa sintassi di esempio, sostituisci user input
placeholders con le tue informazioni.
s3.submit_multi_region_access_point_routes(
AccountId=111122223333,
Mrap=arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap,
RouteUpdates= [{
'Bucket': amzn-s3-demo-bucket,
'Region': ap-southeast-2,
'TrafficDialPercentage': 10
}])
Aggiungi un oggetto a un bucket nel tuo Access Point Multi-Region
Per aggiungere un oggetto al bucket associato all' Multi-Region Access Point, puoi utilizzare l'PutObjectoperazione. Per mantenere sincronizzati tutti i bucket nell' Multi-Region Access Point, abilita Cross-Region Replication.
Per utilizzare questa operazione, è necessario disporre dell's3:PutObjectautorizzazione per l' Multi-Region Access Point. Per ulteriori informazioni sui requisiti di autorizzazione dell' Multi-Region Access Point, vederePermissions.
- AWS CLI
-
Nel seguente esempio, la richiesta del piano dati viene caricata example.txt nell' Multi-Region Access Point specificato. Per utilizzare questo esempio, sostituisci user input
placeholders con le informazioni appropriate.
aws s3api put-object --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap --key example.txt --body example.txt
- SDK for Java
-
S3Client s3Client = S3Client.builder()
.build();
PutObjectRequest objectRequest = PutObjectRequest.builder()
.bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap")
.key("example.txt")
.build();
s3Client.putObject(objectRequest, RequestBody.fromString("Hello S3!"));
- SDK for JavaScript
-
const client = new S3Client({});
async function putObjectExample() {
const command = new PutObjectCommand({
Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap",
Key: "example.txt",
Body: "Hello S3!",
});
try {
const response = await client.send(command);
console.log(response);
} catch (err) {
console.error(err);
}
}
- SDK for Python
-
import boto3
client = boto3.client('s3')
client.put_object(
Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap',
Key='example.txt',
Body='Hello S3!'
)
Recupera oggetti dal tuo Access Point Multi-Region
Per recuperare oggetti dall' Multi-Region Access Point, è possibile utilizzare l'GetObjectoperazione.
Per utilizzare questa operazione API, è necessario disporre dell's3:GetObjectautorizzazione per l' Multi-Region Access Point. Per ulteriori informazioni sui requisiti per le autorizzazioni degli Multi-Region Access Point, vederePermissions.
- AWS CLI
-
Il seguente esempio di richiesta del piano dati viene recuperato example.txt dall' Multi-Region Access Point specificato e lo scarica come. downloaded_example.txt Per utilizzare questo esempio, sostituisci user input
placeholders con le informazioni appropriate.
aws s3api get-object --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap --key example.txt downloaded_example.txt
- SDK for Java
-
S3Client s3 = S3Client
.builder()
.build();
GetObjectRequest getObjectRequest = GetObjectRequest.builder()
.bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap")
.key("example.txt")
.build();
s3Client.getObject(getObjectRequest);
- SDK for JavaScript
-
const client = new S3Client({})
async function getObjectExample() {
const command = new GetObjectCommand({
Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap",
Key: "example.txt"
});
try {
const response = await client.send(command);
console.log(response);
} catch (err) {
console.error(err);
}
}
- SDK for Python
-
import boto3
client = boto3.client('s3')
client.get_object(
Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap',
Key='example.txt'
)
Elenca gli oggetti archiviati in un bucket sottostante il tuo Access Point Multi-Region
Per restituire un elenco di oggetti archiviati in un bucket sottostante l' Multi-Region Access Point, usa l'ListObjectsV2operazione. Nel comando di esempio seguente, tutti gli oggetti per l' Multi-Region Access Point specificato vengono elencati utilizzando l'ARN per l' Multi-Region Access Point. In questo caso, l'ARN dell' Multi-Region Access Point è:
arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap
Per utilizzare questa operazione API, è necessario disporre dell's3:ListBucketautorizzazione per l' Multi-Region Access Point e il bucket sottostante. Per ulteriori informazioni sui requisiti per le autorizzazioni degli Multi-Region Access Point, vedere. Permissions
- AWS CLI
-
Il seguente esempio di richiesta del piano dati elenca gli oggetti nel bucket che sta alla base dell' Multi-Region Access Point specificato dall'ARN. Per utilizzare questo esempio, sostituisci user input placeholders con le informazioni appropriate.
aws s3api list-objects-v2 --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap
- SDK for Java
-
S3Client s3Client = S3Client.builder()
.build();
String bucketName = "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap";
ListObjectsV2Request listObjectsRequest = ListObjectsV2Request
.builder()
.bucket(bucketName)
.build();
s3Client.listObjectsV2(listObjectsRequest);
- SDK for JavaScript
-
const client = new S3Client({});
async function listObjectsExample() {
const command = new ListObjectsV2Command({
Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap",
});
try {
const response = await client.send(command);
console.log(response);
} catch (err) {
console.error(err);
}
}
- SDK for Python
-
import boto3
client = boto3.client('s3')
client.list_objects_v2(
Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap'
)
Usa un URL prefirmato con Access Points Multi-Region
Puoi utilizzare un URL prefirmato per generare un URL che consenta ad altri di accedere ai tuoi bucket Amazon S3 tramite un punto di accesso Amazon S3. Multi-Region Quando crei un URL prefirmato, associalo a un'operazione sugli oggetti specifica come un caricamento S3 (PutObject) o un download S3 (GetObject). L'URL prefirmato può essere condiviso e gli utenti che dispongono dell'autorizzazione di accesso possono eseguire l'azione incorporata nell'URL come se fossero l'utente di firma originale.
Gli URL prefirmati hanno una data di scadenza. Una volta raggiunta la scadenza, l'URL non funzionerà più.
Prima di utilizzare gli Multi-Region access point S3 con URL prefirmati, verifica la compatibilità dell'SDK con l'AWS algoritmo SigV4a. Verifica che la tua versione SDK supporti SigV4a come implementazione di firma utilizzata per firmare le richieste globali a livello di Regione AWS . Per ulteriori informazioni sugli URL prefirmati, consulta Condivisione di oggetti mediante URL prefirmati.
Gli esempi seguenti mostrano come utilizzare gli Access Point con URL prefirmati. Multi-Region Per utilizzare questi esempi, sostituisci user input placeholders con le informazioni appropriate.
- AWS CLI
-
aws s3 presign arn:aws:s3::123456789012:accesspoint/MultiRegionAccessPoint_alias/example-file.txt
- SDK for Python
-
import logging
import boto3
from botocore.exceptions import ClientError
s3_client = boto3.client('s3',aws_access_key_id='xxx',aws_secret_access_key='xxx')
s3_client.generate_presigned_url(HttpMethod='PUT',ClientMethod="put_object", Params={'Bucket':'arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap','Key':'example-file'})
- SDK for Java
-
S3Presigner s3Presigner = S3Presigner.builder()
.credentialsProvider(StsAssumeRoleCredentialsProvider.builder()
.refreshRequest(assumeRole)
.stsClient(stsClient)
.build())
.build();
GetObjectRequest getObjectRequest = GetObjectRequest.builder()
.bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap")
.key("example-file")
.build();
GetObjectPresignRequest preSignedReq = GetObjectPresignRequest.builder()
.getObjectRequest(getObjectRequest)
.signatureDuration(Duration.ofMinutes(10))
.build();
PresignedGetObjectRequest presignedGetObjectRequest = s3Presigner.presignGetObject(preSignedReq);
Per utilizzare Sigv4a con credenziali di sicurezza temporanee, ad esempio quando utilizzi i ruoli IAM, assicurati di richiedere le credenziali temporanee da un endpoint regionale in (), anziché da un endpoint globale. Servizio di token di sicurezza AWS AWS STS Se utilizzi l'endpoint globale for AWS STS (sts.amazonaws.com), AWS STS genererà credenziali temporanee da un endpoint globale, che non è supportato da Sig4A. Di conseguenza, verrà restituito un errore. Per risolvere questo problema, utilizza uno degli endpoint regionali elencati per. AWS STS
Usa un bucket configurato con Requester Pays with Access Points Multi-Region
Se un bucket S3 associato Multi-Region ai tuoi Access Point è configurato per utilizzare Requester Pays, il richiedente pagherà la richiesta del bucket, il download e tutti i costi relativi agli Access Point. Multi-Region Per ulteriori informazioni, consulta Prezzi di Amazon S3.
Ecco un esempio di richiesta di data plane a un Multi-Region Access Point connesso a un bucket Requester Pays.
- AWS CLI
-
Per scaricare oggetti da un Multi-Region Access Point connesso a un bucket Requester Pays, devi specificarlo --request-payer requester come parte della richiesta. get-object Inoltre, devi specificare il nome del file nel bucket e la posizione in cui archiviare il file scaricato.
aws s3api get-object --bucket MultiRegionAccessPoint_ARN --request-payer requester --key example-file-in-bucket.txt example-location-of-downloaded-file.txt
- SDK for Java
-
Per scaricare oggetti da un Multi-Region Access Point connesso a un bucket Requester Pays, è necessario specificarlo RequestPayer.REQUESTER come parte della richiesta. GetObject È inoltre necessario specificare il nome del file nel bucket e la posizione in cui deve essere archiviato.
GetObjectResponse getObjectResponse = s3Client.getObject(GetObjectRequest.builder()
.key("example-file.txt")
.bucket("arn:aws:s3::
123456789012:accesspoint/abcdef0123456.mrap")
.requestPayer(RequestPayer.REQUESTER)
.build()
).response();