Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mendapatkan objek dari bucket Amazon S3 di 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 apa pun dalam bucket Outposts. Saat menentukan bucket untuk operasi objek, Anda menggunakan titik akses Amazon Resource Name (ARN) atau alias titik akses. Untuk informasi selengkapnya tentang alias titik akses, lihat Menggunakan alias gaya bucket untuk titik akses bucket S3 di Outposts.
Contoh berikut menunjukkan ARN format untuk S3 pada jalur akses Outposts, yang mencakup Wilayah AWS kode untuk Wilayah tempat Pos Luar berada, Akun AWS ID, ID Outpost, dan nama titik akses:
arn:aws:s3-outposts:
region
:account-id
:outpost/outpost-id
/accesspoint/accesspoint-name
Untuk informasi lebih lanjut tentang S3 di ARNs Outposts, lihat. Sumber daya ARNs untuk S3 di Outposts
Dengan Amazon S3 di Outposts, data objek selalu disimpan di Outpost. Saat AWS memasang rak Outpost, data Anda tetap lokal di Outpost Anda untuk memenuhi persyaratan residensi data. Objek Anda tidak akan meninggalkan Outpost dan tidak berada di Wilayah 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 RESTAPI, AWS Command Line Interface (AWS CLI), dan AWS SDKs untuk mengunggah dan mengelola objek Anda melalui titik akses Anda.
Contoh berikut menunjukkan kepada Anda cara mengunduh (mendapatkan) objek menggunakan AWS Command Line Interface (AWS CLI) dan AWS SDK for Java.
Contoh berikut mendapatkan objek bernama sample-object.xml
dari bucket S3 di Outposts (s3-outposts:GetObject
) menggunakan AWS CLI. Untuk menggunakan perintah ini, ganti masing-masing
dengan informasi Anda sendiri. Untuk informasi selengkapnya tentang perintah ini, lihat get-objectuser input
placeholder
aws s3api get-object --bucket arn:aws:s3-outposts:
region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outposts-access-point
--keytestkey
sample-object.xml
Berikut S3 pada Outposts contoh mendapatkan objek dengan menggunakan untuk JavaSDK. Untuk menggunakan contoh ini, ganti masing-masing
dengan informasi Anda sendiri. Untuk informasi selengkapnya, lihat GetObjectdi APIReferensi Layanan Penyimpanan Sederhana Amazon.user input placeholder
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(); } }