Hochladen eines Objekts in einen S3-on-Outposts-Bucket
Objekte sind die Grundeinheiten, die in Amazon S3 on Outposts gespeichert sind. Jedes Objekt ist in einem Bucket enthalten. Sie müssen Zugriffspunkte verwenden, um auf ein Objekt in einem Outpost-Bucket zuzugreifen. Wenn Sie den Bucket für Objektoperationen angeben, verwenden Sie den Amazon-Ressourcennamen (ARN) oder den Alias des Zugriffspunkts. Weitere Informationen zu Zugriffspunkt-Aliassen finden Sie unter Verwenden eines Alias im Bucket-Stil für den Zugriffspunkt Ihres S3-on-Outposts-Buckets.
Das folgende Beispiel zeigt das ARN-Format für S3-on-Outposts-Objekte, das den AWS-Region-Code für die Region, in der sich der Outpost befindet, die AWS-Konto-ID, Outpost-ID, Bucket-Name und den Namen des Zugriffspunkts umfasst:
arn:aws:s3-outposts:region
:account-id
:outpost/outpost-id
/accesspoint/accesspoint-name
Weitere Informationen zu S3-in-Outposts-ARNs finden Sie unter Ressourcen-ARNs für S3 on Outposts.
Mit Amazon S3 on Outposts werden Objektdaten immer im Outpost gespeichert. Wenn AWS ein Outpost-Rack installiert, bleiben Ihre Daten in Ihrem Outpost lokal, um die Anforderungen an die Datenspeicherorte zu erfüllen. Ihre Objekte verlassen niemals Ihren Outpost und befinden sich nicht in einer AWS-Region. Da die AWS Management Console innerhalb der Region gehostet wird, können Sie die Konsole nicht verwenden, um Objekte in Ihrem Outpost hochzuladen oder zu verwalten. Sie können die REST-API, AWS Command Line Interface (AWS CLI) und AWS-SDKs zum Hochladen und Verwalten Ihrer Objekte über Ihre Zugriffspunkte verwenden.
Die folgenden Beispiele für die AWS CLI und AWS SDK for Java veranschaulichen, wie Sie ein Objekt unter Verwendung eines Zugriffspunkts in einen S3-on-Outposts-Bucket hochladen.
- AWS CLI
-
Im folgenden Beispiel wird ein Objekt mit dem Namen sample-object.xml
in einen S3-on-Outposts-Bucket (s3-outposts:PutObject
) mit der AWS CLI eingefügt. Zum Verwenden dieses Befehls ersetzen Sie user input placeholder
durch Ihre eigenen Informationen. Weitere Informationen über diesen Befehl finden Sie unter put-object in der AWS CLI-Referenz.
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
-
Im folgenden Beispiel wird ein Objekt mithilfe des SDK for Java in einen S3-on-Outposts-Bucket eingefügt. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie jeden user input
placeholder
durch Ihre Informationen.
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();
}
}
}