There are more AWS SDK examples available in the AWS Doc SDK Examples
Amazon S3 examples using SDK for SAP ABAP
The following code examples show you how to perform actions and implement common scenarios by using the AWS SDK for SAP ABAP with Amazon S3.
Basics are code examples that show you how to perform the essential operations within a service.
Actions are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios.
Scenarios are code examples that show you how to accomplish specific tasks by calling multiple functions within a service or combined with other AWS services.
Each example includes a link to the complete source code, where you can find instructions on how to set up and run the code in context.
Basics
The following code example shows how to:
Create a bucket and upload a file to it.
Download an object from a bucket.
Copy an object to a subfolder in a bucket.
List the objects in a bucket.
Delete the bucket objects and the bucket.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_s3) = /aws1/cl_s3_factory=>create( lo_session ). " Create an Amazon Simple Storage Service (Amazon S3) bucket. " TRY. " determine our region from our session DATA(lv_region) = CONV /aws1/s3_bucketlocationcnstrnt( lo_session->get_region( ) ). DATA lo_constraint TYPE REF TO /aws1/cl_s3_createbucketconf. " When in the us-east-1 region, you must not specify a constraint " In all other regions, specify the region as the constraint IF lv_region = 'us-east-1'. CLEAR lo_constraint. ELSE. lo_constraint = NEW /aws1/cl_s3_createbucketconf( lv_region ). ENDIF. lo_s3->createbucket( iv_bucket = iv_bucket_name io_createbucketconfiguration = lo_constraint ). MESSAGE 'S3 bucket created.' TYPE 'I'. CATCH /aws1/cx_s3_bucketalrdyexists. MESSAGE 'Bucket name already exists.' TYPE 'E'. CATCH /aws1/cx_s3_bktalrdyownedbyyou. MESSAGE 'Bucket already exists and is owned by you.' TYPE 'E'. ENDTRY. "Upload an object to an S3 bucket." TRY. "Get contents of file from application server." DATA lv_file_content TYPE xstring. OPEN DATASET iv_key FOR INPUT IN BINARY MODE. READ DATASET iv_key INTO lv_file_content. CLOSE DATASET iv_key. lo_s3->putobject( iv_bucket = iv_bucket_name iv_key = iv_key iv_body = lv_file_content ). MESSAGE 'Object uploaded to S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY. " Get an object from a bucket. " TRY. DATA(lo_result) = lo_s3->getobject( iv_bucket = iv_bucket_name iv_key = iv_key ). DATA(lv_object_data) = lo_result->get_body( ). MESSAGE 'Object retrieved from S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY. " Copy an object to a subfolder in a bucket. " TRY. lo_s3->copyobject( iv_bucket = iv_bucket_name iv_key = |{ iv_copy_to_folder }/{ iv_key }| iv_copysource = |{ iv_bucket_name }/{ iv_key }| ). MESSAGE 'Object copied to a subfolder.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY. " List objects in the bucket. " TRY. DATA(lo_list) = lo_s3->listobjects( iv_bucket = iv_bucket_name ). MESSAGE 'Retrieved list of objects in S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY. DATA text TYPE string VALUE 'Object List - '. DATA lv_object_key TYPE /aws1/s3_objectkey. LOOP AT lo_list->get_contents( ) INTO DATA(lo_object). lv_object_key = lo_object->get_key( ). CONCATENATE lv_object_key ', ' INTO text. ENDLOOP. MESSAGE text TYPE'I'. " Delete the objects in a bucket. " TRY. lo_s3->deleteobject( iv_bucket = iv_bucket_name iv_key = iv_key ). lo_s3->deleteobject( iv_bucket = iv_bucket_name iv_key = |{ iv_copy_to_folder }/{ iv_key }| ). MESSAGE 'Objects deleted from S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY. " Delete the bucket. " TRY. lo_s3->deletebucket( iv_bucket = iv_bucket_name ). MESSAGE 'Deleted S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see the following topics in AWS SDK for SAP ABAP API reference.
-
Actions
The following code example shows how to use CopyObject.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. lo_s3->copyobject( iv_bucket = iv_dest_bucket iv_key = iv_dest_object iv_copysource = |{ iv_src_bucket }/{ iv_src_object }| ). MESSAGE 'Object copied to another bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see CopyObject in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use CreateBucket.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " determine our region from our session DATA(lv_region) = CONV /aws1/s3_bucketlocationcnstrnt( lo_session->get_region( ) ). DATA lo_constraint TYPE REF TO /aws1/cl_s3_createbucketconf. " When in the us-east-1 region, you must not specify a constraint " In all other regions, specify the region as the constraint IF lv_region = 'us-east-1'. CLEAR lo_constraint. ELSE. lo_constraint = NEW /aws1/cl_s3_createbucketconf( lv_region ). ENDIF. lo_s3->createbucket( iv_bucket = iv_bucket_name io_createbucketconfiguration = lo_constraint ). MESSAGE 'S3 bucket created.' TYPE 'I'. CATCH /aws1/cx_s3_bucketalrdyexists. MESSAGE 'Bucket name already exists.' TYPE 'E'. CATCH /aws1/cx_s3_bktalrdyownedbyyou. MESSAGE 'Bucket already exists and is owned by you.' TYPE 'E'. ENDTRY.-
For API details, see CreateBucket in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use DeleteBucket.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. lo_s3->deletebucket( iv_bucket = iv_bucket_name ). MESSAGE 'Deleted S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see DeleteBucket in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use DeleteBucketCors.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. lo_s3->deletebucketcors( iv_bucket = iv_bucket_name ). MESSAGE 'Bucket CORS configuration deleted.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see DeleteBucketCors in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use DeleteBucketLifecycle.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. lo_s3->deletebucketlifecycle( iv_bucket = iv_bucket_name ). MESSAGE 'Bucket lifecycle configuration deleted.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see DeleteBucketLifecycle in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use DeleteBucketPolicy.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. lo_s3->deletebucketpolicy( iv_bucket = iv_bucket_name ). MESSAGE 'Bucket policy deleted.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see DeleteBucketPolicy in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use DeleteObject.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. lo_s3->deleteobject( iv_bucket = iv_bucket_name iv_key = iv_object_key ). MESSAGE 'Object deleted from S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see DeleteObject in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use DeleteObjects.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->deleteobjects( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name io_delete = NEW /aws1/cl_s3_delete( it_objects = it_object_keys ) ). MESSAGE 'Objects deleted from S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see DeleteObjects in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetBucketAcl.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getbucketacl( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). MESSAGE 'Retrieved bucket ACL.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetBucketAcl in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetBucketCors.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getbucketcors( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). MESSAGE 'Retrieved bucket CORS configuration.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetBucketCors in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetBucketLifecycleConfiguration.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getbucketlifecycleconf( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). MESSAGE 'Retrieved bucket lifecycle configuration.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetBucketLifecycleConfiguration in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetBucketPolicy.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getbucketpolicy( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). DATA(lv_policy) = oo_result->get_policy( ). MESSAGE 'Retrieved bucket policy.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetBucketPolicy in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetObject.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getobject( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name iv_key = iv_object_key ). DATA(lv_object_data) = oo_result->get_body( ). MESSAGE 'Object retrieved from S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetObject in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetObjectAcl.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getobjectacl( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name iv_key = iv_object_key ). MESSAGE 'Retrieved object ACL.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetObjectAcl in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetObjectLegalHold.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getobjectlegalhold( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name iv_key = iv_object_key ). MESSAGE 'Retrieved object legal hold status.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetObjectLegalHold in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use GetObjectLockConfiguration.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->getobjectlockconfiguration( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). MESSAGE 'Retrieved object lock configuration.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see GetObjectLockConfiguration in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use HeadBucket.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->headbucket( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). MESSAGE 'Bucket exists and you have access to it.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see HeadBucket in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use ListObjectVersions.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->listobjectversions( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name iv_prefix = iv_prefix ). MESSAGE 'Retrieved object versions.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see ListObjectVersions in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use ListObjectsV2.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. oo_result = lo_s3->listobjectsv2( " oo_result is returned for testing purposes. " iv_bucket = iv_bucket_name ). MESSAGE 'Retrieved list of objects in S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see ListObjectsV2 in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutBucketAcl.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Grant log delivery access to a bucket " iv_grantwrite = 'uri=http://acs.amazonaws.com/groups/s3/LogDelivery' lo_s3->putbucketacl( iv_bucket = iv_bucket_name iv_grantwrite = iv_grantwrite ). MESSAGE 'Bucket ACL updated.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutBucketAcl in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutBucketCors.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Allow PUT, POST, DELETE methods from http://www.example.com lo_s3->putbucketcors( iv_bucket = iv_bucket_name io_corsconfiguration = NEW /aws1/cl_s3_corsconfiguration( it_corsrules = it_cors_rules ) ). MESSAGE 'Bucket CORS configuration set.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutBucketCors in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutBucketLifecycleConfiguration.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Expire objects with prefix 'logs/' after 30 days lo_s3->putbucketlifecycleconf( iv_bucket = iv_bucket_name io_lifecycleconfiguration = NEW /aws1/cl_s3_bucketlcconf( it_rules = it_lifecycle_rule ) ). MESSAGE 'Bucket lifecycle configuration set.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutBucketLifecycleConfiguration in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutBucketPolicy.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example policy JSON string " iv_policy = '{"Version":"2012-10-17", "Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123456789012:user/user"},"Action":["s3:GetObject"],"Resource":["arn:aws:s3:::bucketname/*"]}]}' lo_s3->putbucketpolicy( iv_bucket = iv_bucket_name iv_policy = iv_policy ). MESSAGE 'Bucket policy set.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutBucketPolicy in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutBucketVersioning.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Enable versioning on a bucket " iv_status = 'Enabled' lo_s3->putbucketversioning( iv_bucket = iv_bucket_name io_versioningconfiguration = NEW /aws1/cl_s3_versioningconf( iv_status = iv_status ) ). MESSAGE 'Bucket versioning enabled.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutBucketVersioning in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutObject.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. "Get contents of file from application server." DATA lv_body TYPE xstring. OPEN DATASET iv_file_name FOR INPUT IN BINARY MODE. READ DATASET iv_file_name INTO lv_body. CLOSE DATASET iv_file_name. "Upload/put an object to an S3 bucket." TRY. lo_s3->putobject( iv_bucket = iv_bucket_name iv_key = iv_file_name iv_body = lv_body ). MESSAGE 'Object uploaded to S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutObject in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutObjectAcl.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Grant read access to an AWS user " iv_grantread = 'emailAddress=user@example.com' lo_s3->putobjectacl( iv_bucket = iv_bucket_name iv_key = iv_object_key iv_grantread = iv_grantread ). MESSAGE 'Object ACL updated.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutObjectAcl in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutObjectLegalHold.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Set legal hold status to ON " iv_status = 'ON' lo_s3->putobjectlegalhold( iv_bucket = iv_bucket_name iv_key = iv_object_key io_legalhold = NEW /aws1/cl_s3_objlocklegalhold( iv_status = iv_status ) ). MESSAGE 'Object legal hold status set.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutObjectLegalHold in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutObjectLockConfiguration.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Enable object lock with default retention " iv_enabled = 'Enabled' lo_s3->putobjectlockconfiguration( iv_bucket = iv_bucket_name io_objectlockconfiguration = NEW /aws1/cl_s3_objectlockconf( iv_objectlockenabled = iv_enabled ) ). MESSAGE 'Object lock configuration set.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutObjectLockConfiguration in AWS SDK for SAP ABAP API reference.
-
The following code example shows how to use PutObjectRetention.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. TRY. " Example: Set retention mode to GOVERNANCE for 30 days " iv_mode = 'GOVERNANCE' " iv_retain_date should be a timestamp in the future lo_s3->putobjectretention( iv_bucket = iv_bucket_name iv_key = iv_object_key io_retention = NEW /aws1/cl_s3_objectlockret( iv_mode = iv_mode iv_retainuntildate = iv_retain_date ) iv_bypassgovernanceretention = abap_true ). MESSAGE 'Object retention set.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. CATCH /aws1/cx_s3_nosuchkey. MESSAGE 'Object key does not exist.' TYPE 'E'. ENDTRY.-
For API details, see PutObjectRetention in AWS SDK for SAP ABAP API reference.
-
Scenarios
The following code example shows how to create a presigned URL for Amazon S3 and upload an object.
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. Create presigned requests to GET S3 objects.
" iv_bucket_name is the bucket name " iv_key is the object name like "myfile.txt" DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_s3) = /aws1/cl_s3_factory=>create( lo_session ). "Upload a nice Hello World file to an S3 bucket." TRY. DATA(lv_contents) = cl_abap_codepage=>convert_to( 'Hello, World' ). lo_s3->putobject( iv_bucket = iv_bucket_name iv_key = iv_key iv_body = lv_contents iv_contenttype = 'text/plain' ). MESSAGE 'Object uploaded to S3 bucket.' TYPE 'I'. CATCH /aws1/cx_s3_nosuchbucket. MESSAGE 'Bucket does not exist.' TYPE 'E'. ENDTRY. " now generate a presigned URL with a 600-second expiration DATA(lo_presigner) = lo_s3->get_presigner( iv_expires_sec = 600 ). " the presigner getobject() method has the same signature as " lo_s3->getobject(), but it doesn't actually make the call. " to the service. It just prepares a presigned URL for a future call DATA(lo_presigned_req) = lo_presigner->getobject( iv_bucket = iv_bucket_name iv_key = iv_key ). " You can provide this URL to a web page, user, email etc so they " can retrieve the file. The URL will expire in 10 minutes. ov_url = lo_presigned_req->get_url( ).