ObjectStore Bluemix connection java

#java #frameworks #ibm-cloud #object-storage

#java #фреймворки #ibm-cloud #объект-хранилище

Вопрос:

Я пытаюсь подключиться к службе хранения объектов в Bluemix. Тем не менее, я продолжаю получать исключение. Вот мой код:

  public static void main(String[] args){
     SwiftApi swiftApi;

     String endpoint   = "https://identity.open.softlayer.com/v2.0";
     String tenantName = "object_storage_aedba606_1c69_4a54_b12c_2cecxxxxxx";
     String userName   = "e8ee36a1fa38432abcxxxxxxx";
     String password   = "Y6R(cY3xxxxxxxx";
     String identity = tenantName ":" userName;
     String provider = "openstack-swift";
     String region = "dallas";
      Properties overrides=new Properties();
         overrides.setProperty(Constants.PROPERTY_LOGGER_WIRE_LOG_SENSITIVE_INFO, "true");
     swiftApi = ContextBuilder.newBuilder(provider)
             .endpoint(endpoint)
             .credentials(identity, password)
             .overrides(overrides)
             .buildApi(SwiftApi.class);

     System.out.println("List Containers");

     ContainerApi containerApi = swiftApi.getContainerApi(region);
     Set<Container> containers = containerApi.list().toSet();

     System.out.println("Listing Containers: ");

     for (Container container : containers) {
         System.out.println("  "   container);
     }
     System.out.println(" ");
 }
  

Я продолжаю получать следующее исключение:

  Exception in thread "main" org.jclouds.rest.AuthorizationException: request: 
 POST https://identity.open.softlayer.com/v2.0/tokens HTTP/1.1  [Sensitive data in payload, 
 use PROPERTY_LOGGER_WIRE_LOG_SENSITIVE_INFO override to enable logging this data.] 
 failed with response: HTTP/1.1 401 Unauthorized
     at org.jclouds.openstack.swift.v1.handlers.SwiftErrorHandler.handleError
 (SwiftErrorHandler.java:52)
     at org.jclouds.http.handlers.DelegatingErrorHandler.handleError
 (DelegatingErrorHandler.java:65)
     at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue
 (BaseHttpCommandExecutorService.java:136)
  

Мое приложение представляет собой автономное Java-приложение. Я использую учетные данные, которые предоставляются в моей службе хранения объектов из Bluemix.

Любая помощь приветствуется.

Ответ №1:

Этот блог поможет вам подключиться к объектному хранилищу в Bluemix https://developer.ibm.com/recipes/tutorials/connecting-to-ibm-object-storage-for-bluemix-with-java /

Вы также можете получить доступ к объектному хранилищу с помощью Swift CLI https://console.ng.bluemix.net/docs/services/ObjectStorage/objectstorge_usingobjectstorage.html#using-swift-cli

Комментарии:

1. Спасибо, в итоге я отказался от реализации jclouds и вместо этого использовал OpenStack4J, как упоминалось в ответе выше. это позор, но единственный способ заставить вещи работать. Еще раз спасибо