Verwendung des DAS-Proxys für den Zugriff auf S3 und S3 kompatible Speicher
Externe Anwendungen und Abfrage-Engines können auf die S3 und S3 kompatiblen Speicher zugreifen, die von watsonx.data über DAS-Proxy verwaltet werden.
Die Proxy-Funktion des Data Access Service (DAS) wurde in 2.1.2 vollständig entfernt und ist in watsonx.data nicht mehr verfügbar. Sie können die Proxy-Funktion des Datenzugriffsdienstes (DAS) nicht für den Zugriff auf Objektspeicher ( S3, ADLS und ABS) verwenden.
Für den Zugriff auf die S3 und S3 kompatiblen Speicher:
-
Holen Sie den DAS-Endpunkt aus dem Informationsfenster watsonx.data. Drücke den
iSymbol auf der Startseite, um das Informationsfenster zu öffnen. -
Ersetzen Sie den S3-Endpunkt durch den DAS-Endpunkt in Ihrem Java-Code.
<DAS endpoint>/cas/v1/proxy -
Ersetzen Sie den Zugriffsschlüssel durch den kodierten Wert im Java-Code wie folgt:
base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}Um das zu bekommenBase64 codierte Zeichenfolge, verwenden Sie einen der folgenden Befehle:
printf "username:<apikey>" | base64echo -n "username:<apikey>" | base64
Java Codebeispiel zur Verwendung von 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);
Informationen zuS3 REST-API-Berechtigungen, siehe S3 REST-API-Berechtigungen.