Utilisation du proxy Data Access Service (DAS) pour accéder aux stockages compatibles S3 et S3

Les applications externes et les moteurs de recherche peuvent accéder aux stockages compatibles S3 et S3 qui sont gérés par watsonx.data par l'intermédiaire du proxy DAS.

La fonction proxy du service d'accès aux données (DAS) est complètement supprimée dans 2.1.2 et n'est plus disponible dans watsonx.data. Vous ne pouvez pas utiliser la fonction proxy du service d'accès aux données (DAS) pour accéder au stockage d'objets ( S3, ADLS et ABS).

Pour accéder aux stockages compatibles S3 et S3:

  1. Obtenir le point de terminaison DAS de la fenêtre d'information watsonx.data. Clique le i sur la page d'accueil pour ouvrir la fenêtre d'information.

  2. Remplacez le point de terminaison S3 par le point de terminaison DAS dans votre code Java.

    <DAS endpoint>/cas/v1/proxy
    
  3. Remplacez la clé d'accès par la valeur codée dans le code Java comme suit :

    base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
    

    Pour obtenir leBase64 chaîne encodée, utilisez l'une des commandes suivantes :

    printf "username:<apikey>" | base64
    
    echo -n "username:<apikey>" | base64
    

Java exemple de code pour utiliser le DAS

        String bucketName = "bucket1";
        String keyName = "folder1/file1";
        # replace the target object store endpoint with the DAS proxy endpoint
        String endpoint = "<DAS endpoint get from About page>/cas/v1/proxy";
        /** Replace the Access Key with watsonx.data user name and API key following the below base64 encoded method.
        * For Cloud Pak for Data: base64{<instanceid>|ZenAPIkey base64{username:<apikey>}}
        * For IBM Cloud: base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
        * For AWS: base64{<crn>|Basic base64{ibmlhapikey_ServiceId-<service_id>:<APIKEY>}}
        */
        String accessKey = "encoded value";
        String secretKey = "any string";

        BasicAWSCredentials cos_cred = new BasicAWSCredentials(accessKey, secretKey);
        EndpointConfiguration cosEndPoint = new EndpointConfiguration(endpoint, "us-east");
        AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withPathStyleAccessEnabled(true)
                .withCredentials(new AWSStaticCredentialsProvider(cos_cred))
                .withEndpointConfiguration(cosEndPoint).build();
        GetObject.GetObjectTest(s3Client, bucketName, keyName);

Pour des informations surS3 Autorisations de l'API REST, voir S3 Autorisations de l'API REST.