Amazon S3 on Outposts 버킷의 객체 삭제
객체는 Amazon S3 on Outposts에 저장되는 기본 개체입니다. 모든 객체는 어떤 버킷에 포함됩니다. Outpost 버킷의 객체에 액세스하려면 액세스 포인트를 사용해야 합니다. 객체 작업에 버킷을 지정할 때 액세스 포인트 이름이 포함된 액세스 포인트 Amazon 리소스 이름(ARN) 또는 액세스 포인트 별칭을 사용합니다. 액세스 포인트 별칭에 대한 자세한 내용은 S3 on Outposts 버킷 액세스 포인트에 버킷 스타일 별칭 사용 섹션을 참조하세요.
다음 예제는 S3 on Outposts 액세스 포인트에 대한 ARN 형식을 보여줍니다. 여기에는 Outpost가 있는 리전의 AWS 리전 코드, AWS 계정 ID, Outpost ID 및 액세스 포인트 이름이 포함됩니다.
arn:aws:s3-outposts:region
:account-id
:outpost/outpost-id
/accesspoint/accesspoint-name
S3 on Outposts ARN에 대한 자세한 내용은 S3 on Outposts의 리소스 ARN 단원을 참조하세요.
Amazon S3 on Outposts를 사용할 경우 객체 데이터는 항상 Outpost에 저장됩니다. AWS가 Outpost 랙을 설치하는 경우 데이터 상주 요구 사항을 충족하기 위해 데이터가 Outpost에 로컬로 유지됩니다. 객체는 Outpost에서 벗어나지 않으며 AWS 리전에 있지 않습니다. AWS Management Console이 리전 내에 호스팅되므로 콘솔을 사용하여 Outpost의 객체를 업로드하거나 관리할 수 없습니다. 그러나 REST API, AWS Command Line Interface(AWS CLI), AWS SDK를 사용하여 액세스 포인트를 통해 객체를 업로드하고 관리할 수 있습니다.
다음 예제에서는 AWS Command Line Interface(AWS CLI) 및 AWS SDK for Java를 사용하여 S3 on Outposts 버킷의 단일 객체 또는 여러 객체를 삭제하는 방법을 보여줍니다.
다음 예제에서는 S3 on Outposts 버킷에서 단일 객체 또는 여러 객체를 삭제하는 방법을 보여줍니다.
- delete-object
-
다음 예제에서는 AWS CLI를 사용하여 S3 on Outposts 버킷(s3-outposts:DeleteObject
)에서 sample-object.xml
이라는 객체를 삭제합니다. 이 명령을 사용하려면 각 user input
placeholder
를 사용자의 정보로 대체합니다. 이 명령에 대한 자세한 내용은 AWS CLI 참조의 delete-object를 참조하세요.
aws s3api delete-object --bucket arn:aws:s3-outposts:region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outposts-access-point
--key sample-object.xml
- delete-objects
-
다음 예제에서는 AWS CLI를 사용하여 S3 on Outposts 버킷(s3-outposts:DeleteObject
)에서 sample-object.xml
및 test1.text
라는 두 객체를 삭제합니다. 이 명령을 사용하려면 각 user input
placeholder
를 사용자의 정보로 대체합니다. 이 명령에 대한 자세한 내용은 AWS CLI 참조의 delete-objects를 참조하세요.
aws s3api delete-objects --bucket arn:aws:s3-outposts:region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outposts-access-point
--delete file://delete.json
delete.json
{
"Objects": [
{
"Key": "test1.txt"
},
{
"Key": "sample-object.xml"
}
],
"Quiet": false
}
다음 예제에서는 S3 on Outposts 버킷에서 단일 객체 또는 여러 객체를 삭제하는 방법을 보여줍니다.
- DeleteObject
-
다음 S3 on Outposts 예제에서는 Java용 SDK를 사용하여 버킷의 객체를 삭제합니다. 이 예제를 사용하려면 Outpost에 대한 액세스 포인트 ARN과 삭제할 객체의 키 이름을 지정합니다. 자세한 내용은 Amazon Simple Storage Service API 참조에서 DeleteObject를 참조하세요.
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.DeleteObjectRequest;
public class DeleteObject {
public static void main(String[] args) {
String accessPointArn = "*** access point ARN ***
";
String keyName = "*** key name ****
";
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();
s3Client.deleteObject(new DeleteObjectRequest(accessPointArn, keyName));
} 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();
}
}
}
- DeleteObjects
-
다음 S3 on Outposts 예제에서는 Java용 SDK를 사용하여 버킷에 객체를 업로드하고 삭제합니다. 이 예제를 사용하려면 Outpost에 대한 액세스 포인트 ARN을 지정합니다. 자세한 내용은 Amazon Simple Storage Service API 참조에서 DeleteObjects를 참조하세요.
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.DeleteObjectsRequest;
import com.amazonaws.services.s3.model.DeleteObjectsRequest.KeyVersion;
import com.amazonaws.services.s3.model.DeleteObjectsResult;
import java.util.ArrayList;
public class DeleteObjects {
public static void main(String[] args) {
String accessPointArn = "arn:aws:s3-outposts:region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outposts-access-point
";
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 three sample objects.
ArrayList<KeyVersion> keys = new ArrayList<KeyVersion>();
for (int i = 0; i < 3; i++) {
String keyName = "delete object example " + i;
s3Client.putObject(accessPointArn, keyName, "Object number " + i + " to be deleted.");
keys.add(new KeyVersion(keyName));
}
System.out.println(keys.size() + " objects successfully created.");
// Delete the sample objects.
DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest(accessPointArn)
.withKeys(keys)
.withQuiet(false);
// Verify that the objects were deleted successfully.
DeleteObjectsResult delObjRes = s3Client.deleteObjects(multiObjectDeleteRequest);
int successfulDeletes = delObjRes.getDeletedObjects().size();
System.out.println(successfulDeletes + " objects successfully deleted.");
} 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();
}
}
}