Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Titik Akses Multi-Wilayah dengan operasi API yang didukung
Amazon S3 menyediakan serangkaian operasi untuk mengelola Titik Akses Multi-Wilayah. Amazon S3 memproses beberapa operasi ini secara sinkron dan beberapa secara asinkron. Saat Anda menginvoke operasi asinkron, Amazon S3 terlebih dahulu akan mengotorisasi operasi yang diminta secara sinkron. Jika otorisasi berhasil, Amazon S3 akan memberikan token yang dapat Anda gunakan untuk melacak kemajuan dan hasil operasi yang diminta.
Permintaan yang dibuat melalui konsol Amazon S3 selalu sinkron. Konsol menunggu hingga permintaan selesai sebelum memperbolehkan Anda mengirimkan permintaan lain.
Anda dapat melihat status saat ini dan hasil operasi asinkron dengan menggunakan konsol, atau Anda dapat menggunakannya DescribeMultiRegionAccessPointOperation
di, AWS CLI AWS SDKs, atau REST API. Amazon S3 memberikan token pelacakan untuk merespons operasi asinkron. Anda menyertakan token pelacakan itu sebagai argumen untuk DescribeMultiRegionAccessPointOperation
. Saat Anda menyertakan token pelacakan, Amazon S3 kemudian memberikan status saat ini dan hasil operasi yang ditentukan, termasuk kesalahan atau informasi sumber daya yang relevan. Amazon S3 melakukan operasi DescribeMultiRegionAccessPointOperation
secara sinkron.
Semua permintaan bidang kontrol untuk membuat atau mengelola Titik Akses Multi-Wilayah harus dirutekan ke Wilayah US West (Oregon)
. Untuk permintaan bidang data Titik Akses Multi-Wilayah, tidak perlu menentukan Wilayah secara khusus. Untuk bidang kontrol failover Titik Akses Multi-Wilayah, permintaan harus dirutekan ke salah satu dari lima Wilayah yang didukung. Untuk informasi selengkapnya tentang Wilayah yang didukung Titik Akses Multi-Wilayah, lihatPembatasan dan batasan Titik Akses Multi-Wilayah.
Selain itu, Anda harus memberikan s3:ListAllMyBuckets
izin kepada pengguna, peran, atau entitas lain AWS Identity and Access Management (IAM) yang membuat permintaan untuk mengelola Titik Akses Multi-Wilayah.
Berikut ini adalah contoh cara menggunakan Titik Akses Multi-Wilayah dengan operasi yang kompatibel di Amazon S3.
Kompatibilitas Titik Akses Multi-Wilayah dengan Layanan AWS dan AWS
SDKs
Untuk menggunakan Titik Akses Multi-Wilayah dengan aplikasi yang memerlukan nama bucket Amazon S3, gunakan Nama Sumber Daya Amazon (ARN) dari Titik Akses Multi-Wilayah saat membuat permintaan menggunakan SDK. AWS Untuk memeriksa mana yang AWS SDKs kompatibel dengan Titik Akses Multi-Wilayah, lihat Kompatibilitas dengan AWS SDKs.
Kompatibilitas Titik Akses Multi-Wilayah dengan operasi S3
Anda dapat menggunakan operasi API bidang data Amazon S3 berikut untuk melakukan tindakan pada objek dalam bucket yang terkait dengan Titik Akses Multi-Wilayah Anda. Operasi S3 berikut dapat menerima Titik Akses Multi-Wilayah: ARNs
Titik Akses Multi-Region mendukung operasi penyalinan menggunakan Titik Akses Multi-Wilayah hanya sebagai tujuan saat menggunakan ARN Titik Akses Multi-Wilayah.
Anda dapat menggunakan operasi bidang kontrol Amazon S3 berikut untuk membuat dan mengelola Titik Akses Multi-Wilayah:
Lihat konfigurasi perutean Titik Akses Multi-Wilayah
- AWS CLI
-
Contoh perintah berikut mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh perintah ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
-
Kode SDK for Java berikut mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh sintaks ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
-
SDK berikut untuk JavaScript kode mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh sintaks ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
-
SDK berikut untuk kode Python mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh sintaks ini, ganti user input
placeholders
dengan informasi Anda sendiri.
s3.get_multi_region_access_point_routes(
AccountId=111122223333
,
Mrap=arn:aws:s3::111122223333
:accesspoint/abcdef0123456
.mrap)['Routes']
Perbarui kebijakan bucket Amazon S3
Untuk memberikan akses yang tepat, Anda juga harus memperbarui kebijakan bucket Amazon S3 yang mendasarinya. Contoh berikut mendelegasikan kontrol akses ke kebijakan Titik Akses Multi-Wilayah. Setelah Anda mendelegasikan kontrol akses ke kebijakan Titik Akses Multi-Wilayah, kebijakan bucket tidak lagi digunakan untuk kontrol akses saat permintaan dibuat melalui Titik Akses Multi-Wilayah.
Berikut adalah contoh kebijakan bucket yang mendelegasikan kontrol akses ke kebijakan Titik Akses Multi-Wilayah. Untuk menggunakan contoh kebijakan bucket ini, ganti user input
placeholders
dengan informasi Anda sendiri. Untuk menerapkan kebijakan ini melalui AWS CLI put-bucket-policy
perintah, seperti yang ditunjukkan pada contoh berikutnya, simpan kebijakan dalam file, misalnya,policy.json
.
{
"Version": "2012-10-17",
"Statement": {
"Principal": { "AWS": "*" },
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::111122223333
/*", "arn:aws:s3:::amzn-s3-demo-bucket
"],
"Condition": {
"StringEquals": {
"s3:DataAccessPointAccount": "444455556666
"
}
}
}
}
Contoh perintah put-bucket-policy
berikut mengaitkan kebijakan bucket S3 yang diperbarui dengan bucket S3 Anda:
aws s3api put-bucket-policy
--bucket amzn-s3-demo-bucket
--policy file:///tmp/policy.json
Memperbarui konfigurasi rute Titik Akses Multi-Wilayah
Contoh perintah berikut memperbarui konfigurasi rute Titik Akses Multi-Wilayah. Perintah rute Titik Akses Multi-Wilayah dapat dijalankan terhadap lima Wilayah berikut:
-
ap-southeast-2
-
ap-northeast-1
-
us-east-1
-
us-west-2
-
eu-west-1
Dalam konfigurasi perutean Titik Akses Multi-Wilayah, Anda dapat mengatur bucket ke status perutean aktif atau pasif. Bucket aktif menerima lalu lintas, sedangkan bucket pasif tidak. Anda dapat menyetel status perutean bucket dengan mengatur nilai TrafficDialPercentage
bucket ke 100
untuk aktif atau 0
untuk pasif.
- AWS CLI
-
Contoh perintah berikut ini memperbarui konfigurasi perutean Titik Akses Multi-Wilayah Anda. Dalam contoh ini, amzn-s3-demo-bucket1
diatur ke status aktif dan amzn-s3-demo-bucket2
diatur ke pasif. Untuk menggunakan contoh perintah ini, ganti user input placeholders
dengan informasi Anda sendiri.
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
-
Kode SDK for Java berikut memperbarui konfigurasi perutean Titik Akses Multi-Wilayah Anda. Untuk menggunakan contoh sintaks ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
-
SDK berikut untuk JavaScript kode memperbarui konfigurasi rute Titik Akses Multi-Wilayah Anda. Untuk menggunakan contoh sintaks ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
-
Kode SDK untuk Python berikut ini memperbarui konfigurasi rute Titik Akses Multi-Wilayah Anda. Untuk menggunakan contoh sintaks ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
}])
Tambahkan objek ke bucket di Titik Akses Multi-Wilayah
Untuk menambahkan objek ke bucket yang terkait dengan Titik Akses Multi-Wilayah, Anda dapat menggunakan PutObjectoperasi. Agar semua bucket di Titik Akses Multi-Wilayah tetap sinkron, aktifkan Replikasi Lintas Wilayah.
Untuk menggunakan operasi ini, Anda harus memiliki izin s3:PutObject
untuk Titik Akses Multi-Wilayah. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.
- AWS CLI
-
Contoh permintaan bidang data berikut mengunggah example.txt
ke Titik Akses Multi-Wilayah yang ditentukan. Untuk menggunakan contoh ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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!
'
)
Mengambil objek dari Titik Akses Multi-Wilayah
Untuk mengambil objek dari Multi-Region Access Point, Anda dapat menggunakan GetObjectoperasi.
Untuk menggunakan operasi API ini, Anda harus memiliki izin s3:GetObject
untuk Titik Akses Multi-Wiayah. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.
- AWS CLI
-
Contoh permintaan bidang data berikut mengambil example.txt
dari Titik Akses Multi-Wilayah yang ditentukan dan mengunduhnya sebagai downloaded_example.txt
. Untuk menggunakan contoh ini, ganti user input
placeholders
dengan informasi Anda sendiri.
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
'
)
Buat daftar objek yang disimpan dalam bucket yang mendasari Titik Akses Multi-Wilayah Anda
Untuk mengembalikan daftar objek yang disimpan dalam bucket yang mendasari Titik Akses Multi-Wilayah Anda, gunakan ListObjectsV2operasi. Dalam contoh perintah berikut, semua objek untuk Titik Akses Multi-Wilayah yang ditentukan dicantumkan dengan menggunakan ARN untuk Titik Akses Multi-Wilayah. Dalam hal ini, ARN Titik Akses Multi-Wilayah adalah:
arn:aws:s3::123456789012
:accesspoint/abcdef0123456
.mrap
Untuk menggunakan operasi API ini, Anda harus memiliki izin s3:ListBucket
untuk Titik Akses Multi-Wilayah dan bucket yang mendasarinya. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.
- AWS CLI
-
Contoh permintaan bidang data berikut mencantumkan objek dalam bucket yang mendasari Titik Akses Multi-Wilayah yang ditentukan oleh ARN. Untuk menggunakan contoh ini, ganti user input placeholders
dengan informasi Anda sendiri.
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'
)
Gunakan URL yang telah ditetapkan sebelumnya dengan Titik Akses Multi-Wilayah
Anda dapat menggunakan URL yang telah ditetapkan sebelumnya untuk membuat URL sehingga orang lain dapat mengakses bucket Amazon S3 Anda melalui Titik Akses Multi-Wilayah Amazon S3. Saat membuat URL yang telah ditetapkan sebelumnya, kaitkan dengan tindakan objek tertentu, seperti unggah S3 (PutObject
) atau unduhan S3 (GetObject
). Anda dapat membagikan URL yang telah ditetapkan sebelumnya, dan siapa pun yang memiliki akses ke URL dapat melakukan tindakan yang disertakan dalam URL seolah-olah mereka adalah pengguna yang membuat URL sendiri.
Presigned URLs memiliki tanggal kedaluwarsa. Ketika masa berlaku habis, URL tidak akan berfungsi lagi.
Sebelum Anda menggunakan S3 Multi-Region Access Points dengan presigned URLs, periksa kompatibilitas AWS SDK dengan algoritma Sigv4a. Verifikasi bahwa versi SDK Anda mendukung Sigv4A sebagai implementasi penandatanganan yang digunakan untuk menandatangani permintaan global Wilayah AWS . Untuk informasi selengkapnya tentang penggunaan presigned URLs dengan Amazon S3, lihat Berbagi objek menggunakan presigned. URLs
Contoh berikut menunjukkan bagaimana Anda dapat menggunakan Titik Akses Multi-Region dengan URLs presigned. Untuk menggunakan contoh ini, ganti user input placeholders
dengan informasi Anda sendiri.
- 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);
Untuk menggunakan Sigv4a dengan kredensi keamanan sementara—misalnya, saat menggunakan peran IAM—pastikan Anda meminta kredensi sementara dari titik akhir Regional di (), bukan titik akhir global. AWS Security Token Service AWS STS Jika Anda menggunakan endpoint global for AWS STS (sts.amazonaws.com
), AWS STS akan menghasilkan kredensi sementara dari titik akhir global, yang tidak didukung oleh Sig4A. Akibatnya, akan terjadi kesalahan. Untuk mengatasi masalah ini, gunakan salah satu titik akhir Regional yang terdaftar untuk AWS STS.
Gunakan bucket yang dikonfigurasi dengan Pembayaran Pemohon dengan Titik Akses Multi-Wilayah
Jika bucket S3 yang terkait dengan Titik Akses Multi-Wilayah Anda dikonfigurasi untuk menggunakan Pembayaran Pemohon, pemohon akan membayar permintaan bucket, unduhan, dan biaya terkait Titik Akses Multi-Wilayah. Untuk informasi selengkapnya, lihat Harga Amazon S3.
Berikut adalah contoh permintaan bidang data ke Titik Akses Multi-Wilayah yang terhubung ke bucket Pembayaran Pemohon.
- AWS CLI
-
Untuk mengunduh objek dari Titik Akses Multi-Wilayah yang terhubung ke bucket Requester Pays, Anda harus menentukan --request-payer requester
sebagai bagian dari get-objectpermintaan. Anda juga harus menentukan nama file di dalam bucket dan lokasi penyimpanan file yang diunduh.
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
-
Untuk mengunduh objek dari Titik Akses Multi-Wilayah yang terhubung ke bucket Pembayaran Pemohon, Anda harus menentukan RequestPayer.REQUESTER
sebagai bagian dari permintaan GetObject
Anda. Anda juga harus menentukan nama file dalam bucket, serta lokasi penyimpanannya.
GetObjectResponse getObjectResponse = s3Client.getObject(GetObjectRequest.builder()
.key("example-file.txt
")
.bucket("arn:aws:s3::
123456789012
:accesspoint/abcdef0123456
.mrap")
.requestPayer(RequestPayer.REQUESTER)
.build()
).response();