Uso del proxy Data Access Service (DAS) para acceder a S3 y S3 almacenamientos compatibles
Las aplicaciones externas y los motores de consulta pueden acceder a los almacenamientos compatibles S3 y S3 que gestiona watsonx.data a través del proxy DAS.
La función de proxy del Servicio de Acceso a Datos (DAS) se ha eliminado por completo en 2.1.2 y ya no está disponible en watsonx.data. No se puede utilizar la función de proxy del Servicio de Acceso a Datos (DAS) para acceder al almacenamiento de objetos ( S3, ADLS y ABS).
Para acceder a los almacenamientos compatibles S3 y S3:
-
Obtener el punto final DAS de la ventana de información watsonx.data. Haga clic en el
ien la página de inicio para abrir la ventana de información. -
Sustituya el punto final S3 por el punto final DAS en su código Java.
<DAS endpoint>/cas/v1/proxy -
Sustituye la clave de acceso por el valor codificado en el código Java de la siguiente forma:
base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}Para obtener elBase64 cadena codificada, utilice uno de los siguientes comandos:
printf "username:<apikey>" | base64echo -n "username:<apikey>" | base64
Java para utilizar 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);
Para información sobreS3 Permisos de API REST, consulte S3 Permisos de API REST.