Exemplos do Amazon S3 usando o SDK para SAP ABAP - AWS Exemplos de código do SDK

Há mais exemplos de AWS SDK disponíveis no repositório AWS Doc SDK Examples GitHub .

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos do Amazon S3 usando o SDK para SAP ABAP

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS SDK para SAP ABAP com o Amazon S3.

As noções básicas são exemplos de código que mostram como realizar as operações essenciais em um serviço.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cenários são exemplos de código que mostram como realizar tarefas específicas chamando várias funções dentro de um serviço ou combinadas com outros Serviços da AWS.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

Conceitos básicos

O exemplo de código a seguir mostra como:

  • Criar um bucket e fazer upload de um arquivo para ele.

  • Baixar um objeto de um bucket.

  • Copiar um objeto em uma subpasta em um bucket.

  • Listar os objetos em um bucket.

  • Exclua os objetos do bucket e o bucket.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

Ações

O código de exemplo a seguir mostra como usar CopyObject.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a CopyObjectreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar CreateBucket.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a CreateBucketreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar DeleteBucket.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a DeleteBucketreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar DeleteBucketCors.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a DeleteBucketCorsreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar DeleteBucketLifecycle.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

O código de exemplo a seguir mostra como usar DeleteBucketPolicy.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a DeleteBucketPolicyreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar DeleteObject.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a DeleteObjectreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar DeleteObjects.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a DeleteObjectsreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetBucketAcl.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a GetBucketAclreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetBucketCors.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a GetBucketCorsreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetBucketLifecycleConfiguration.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

O código de exemplo a seguir mostra como usar GetBucketPolicy.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a GetBucketPolicyreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetObject.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a GetObjectreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetObjectAcl.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a GetObjectAclreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetObjectLegalHold.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a GetObjectLegalHoldreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar GetObjectLockConfiguration.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

O código de exemplo a seguir mostra como usar HeadBucket.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a HeadBucketreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar ListObjectVersions.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a ListObjectVersionsreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar ListObjectsV2.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

O código de exemplo a seguir mostra como usar PutBucketAcl.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutBucketAclreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutBucketCors.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutBucketCorsreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutBucketLifecycleConfiguration.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

O código de exemplo a seguir mostra como usar PutBucketPolicy.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutBucketPolicyreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutBucketVersioning.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutBucketVersioningreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutObject.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutObjectreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutObjectAcl.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutObjectAclreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutObjectLegalHold.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutObjectLegalHoldreferência da API AWS SDK for SAP ABAP.

O código de exemplo a seguir mostra como usar PutObjectLockConfiguration.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.

O código de exemplo a seguir mostra como usar PutObjectRetention.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no 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.
  • Para obter detalhes da API, consulte a PutObjectRetentionreferência da API AWS SDK for SAP ABAP.

Cenários

O exemplo de código a seguir mostra como criar um URL pré-assinado para o Amazon S3 e fazer upload de um objeto.

SDK para SAP ABAP
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWS Code Examples Repository.

Crie solicitações pré-assinadas para objetos GET do S3.

" 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( ).