Pengambilamakan objek Amazon S3 di bucket Outposts - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pengambilamakan objek Amazon S3 di bucket Outposts

Objek adalah entitas dasar yang disimpan di Amazon S3 di Outposts. Setiap objek dimuat dalam bucket. Anda harus menggunakan titik akses untuk mengakses objek apapun dalam bucket Outposts. Saat Anda menentukan bucket untuk operasi objek, Anda menggunakan titik akses Amazon Resource Name (ARN) atau alias titik akses. Untuk informasi selengkapnya tentang titik akses alias, lihatMenggunakan alias untuk titik akses bucket S3 di Outposts Anda di bucket S3 di Outposts.

Contoh berikut menunjukkan format ARN untuk S3 di Outposts access points, yang mencakupWilayah AWS kode untuk Wilayah yang Outpost homed ke,Akun AWS ID, Outpost ID, dan nama access point:

arn:aws:s3-outposts:region:account-id:outpost/outpost-id/accesspoint/accesspoint-name

Untuk informasi lebih lanjut tentang S3 di Outposts ARN, lihatSumber daya ARNs untuk S3 di Outposts.

Dengan Amazon S3 di Outposts, data objek selalu disimpan di Outpost. KetikaAWS menginstal rak Outpost, data Anda tetap lokal untuk Outpost Anda untuk memenuhi persyaratan data-residensi. Objek Anda tidak pernah meninggalkan Outpost Anda dan tidak dalamWilayah AWS. Karena di-host In-region, Anda tidak dapat menggunakan konsol untuk mengunggah atau mengelola objek di Outpost Anda.AWS Management Console Namun, Anda dapat menggunakan REST API,AWS Command Line Interface (AWS CLI), danAWS SDK untuk mengunggah dan mengelola objek Anda melalui titik akses Anda.

Contoh berikut menunjukkan cara untuk men-download (mendapatkan) objek dengan menggunakanAWS Command Line Interface (AWS CLI) danAWS SDK for Java.

Contoh berikut mendapat sebuah objek bernamasample-object.xml dari S3 pada Outposts bucket (s3-outposts:GetObject) dengan menggunakanAWS CLI. Untuk menggunakan perintah ini, ganti masing-masinguser input placeholder dengan informasi Anda sendiri. Untuk informasi selengkapnya tentang perintah ini, lihat get-object di AWS CLIReferensi.

aws s3api get-object --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point --key testkey sample-object.xml

Contoh S3 di Outposts berikut mendapatkan objek dengan menggunakan SDK for Java. Untuk menggunakan contoh ini, ganti masing-masinguser input placeholder dengan informasi Anda sendiri. Untuk informasi lebih lanjut, lihat GetObject dalam Referensi API Layanan Penyimpanan Sederhana Amazon.

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.GetObjectRequest; import com.amazonaws.services.s3.model.ResponseHeaderOverrides; import com.amazonaws.services.s3.model.S3Object; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class GetObject { public static void main(String[] args) throws IOException { String accessPointArn = "*** access point ARN ***"; String key = "*** Object key ***"; S3Object fullObject = null, objectPortion = null, headerOverrideObject = null; 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(); // Get an object and print its contents. System.out.println("Downloading an object"); fullObject = s3Client.getObject(new GetObjectRequest(accessPointArn, key)); System.out.println("Content-Type: " + fullObject.getObjectMetadata().getContentType()); System.out.println("Content: "); displayTextInputStream(fullObject.getObjectContent()); // Get a range of bytes from an object and print the bytes. GetObjectRequest rangeObjectRequest = new GetObjectRequest(accessPointArn, key) .withRange(0, 9); objectPortion = s3Client.getObject(rangeObjectRequest); System.out.println("Printing bytes retrieved."); displayTextInputStream(objectPortion.getObjectContent()); // Get an entire object, overriding the specified response headers, and print the object's content. ResponseHeaderOverrides headerOverrides = new ResponseHeaderOverrides() .withCacheControl("No-cache") .withContentDisposition("attachment; filename=example.txt"); GetObjectRequest getObjectRequestHeaderOverride = new GetObjectRequest(accessPointArn, key) .withResponseHeaders(headerOverrides); headerOverrideObject = s3Client.getObject(getObjectRequestHeaderOverride); displayTextInputStream(headerOverrideObject.getObjectContent()); } 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(); } finally { // To ensure that the network connection doesn't remain open, close any open input streams. if (fullObject != null) { fullObject.close(); } if (objectPortion != null) { objectPortion.close(); } if (headerOverrideObject != null) { headerOverrideObject.close(); } } } private static void displayTextInputStream(InputStream input) throws IOException { // Read the text input stream one line at a time and display each line. BufferedReader reader = new BufferedReader(new InputStreamReader(input)); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } System.out.println(); } }