繁体   English   中英

如何使用JAVA在对象存储中创建对象?

[英]How to create Object in Object Storage Using JAVA?

我知道如何通过获取身份验证来创建对象,而不是调用API

下面的链接是可用的信息,有关如何从Postman的API连接对象存储时进行身份验证, 未经授权的错误

JAVA中是否有可用的库来执行这些操作?

我从下面的链接中获得了库,但似乎旧了而且无法正常工作, https://github.com/softlayer/softlayer-object-storage-java/tree/master/sl-objectstorage

如果有人知道,请发表操作方法。

通过使用低于错误的库,

Error while handling an HTTP client call
java.lang.ClassCastException: org.restlet.data.Parameter incompatible with org.restlet.data.Header
    at org.restlet.engine.header.HeaderUtils.addExtensionHeaders(HeaderUtils.java:220)
    at org.restlet.engine.header.HeaderUtils.addRequestHeaders(HeaderUtils.java:479)
    at org.restlet.engine.adapter.ClientAdapter.toSpecific(ClientAdapter.java:163)
    at org.restlet.engine.adapter.HttpClientHelper.handle(HttpClientHelper.java:118)
    at org.restlet.Client.handle(Client.java:153)
    at org.restlet.routing.Filter.doHandle(Filter.java:150)
    at org.restlet.routing.Filter.handle(Filter.java:197)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1092)
    at org.restlet.resource.ClientResource.handleOutbound(ClientResource.java:1176)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1047)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1023)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:928)
    at org.restlet.resource.ClientResource.get(ClientResource.java:636)
    at com.softlayer.objectstorage.Client.httpRequest(Client.java:245)
    at com.softlayer.objectstorage.Client.get(Client.java:177)
    at com.softlayer.objectstorage.Client.auth(Client.java:128)
    at com.softlayer.objectstorage.Client.<init>(Client.java:107)
    at com.softlayer.objectstorage.Container.<init>(Container.java:77)
    at com.wrakafka.consumer.ObjectStorageUtil.createContainer(ObjectStorageUtil.java:24)
    at spark.KafkaConsumer.main(KafkaConsumer.java:51)

Nov 21, 2016 1:24:18 PM org.restlet.resource.ClientResource retry
INFO: A recoverable error was detected (1002), attempting again in 2000 ms.
Nov 21, 2016 1:24:20 PM org.restlet.engine.adapter.HttpClientHelper handle
INFO: Error while handling an HTTP client call
java.lang.ClassCastException: org.restlet.data.Parameter incompatible with org.restlet.data.Header
    at org.restlet.engine.header.HeaderUtils.addExtensionHeaders(HeaderUtils.java:220)
    at org.restlet.engine.header.HeaderUtils.addRequestHeaders(HeaderUtils.java:479)
    at org.restlet.engine.adapter.ClientAdapter.toSpecific(ClientAdapter.java:163)
    at org.restlet.engine.adapter.HttpClientHelper.handle(HttpClientHelper.java:118)
    at org.restlet.Client.handle(Client.java:153)
    at org.restlet.routing.Filter.doHandle(Filter.java:150)
    at org.restlet.routing.Filter.handle(Filter.java:197)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1092)
    at org.restlet.resource.ClientResource.retry(ClientResource.java:1650)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1100)
    at org.restlet.resource.ClientResource.handleOutbound(ClientResource.java:1176)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1047)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1023)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:928)
    at org.restlet.resource.ClientResource.get(ClientResource.java:636)
    at com.softlayer.objectstorage.Client.httpRequest(Client.java:245)
    at com.softlayer.objectstorage.Client.get(Client.java:177)
    at com.softlayer.objectstorage.Client.auth(Client.java:128)
    at com.softlayer.objectstorage.Client.<init>(Client.java:107)
    at com.softlayer.objectstorage.Container.<init>(Container.java:77)
    at com.wrakafka.consumer.ObjectStorageUtil.createContainer(ObjectStorageUtil.java:24)
    at spark.KafkaConsumer.main(KafkaConsumer.java:51)

Nov 21, 2016 1:24:20 PM org.restlet.resource.ClientResource retry
INFO: A recoverable error was detected (1002), attempting again in 2000 ms.
Nov 21, 2016 1:24:22 PM org.restlet.engine.adapter.HttpClientHelper handle
INFO: Error while handling an HTTP client call
java.lang.ClassCastException: org.restlet.data.Parameter incompatible with org.restlet.data.Header
    at org.restlet.engine.header.HeaderUtils.addExtensionHeaders(HeaderUtils.java:220)
    at org.restlet.engine.header.HeaderUtils.addRequestHeaders(HeaderUtils.java:479)
    at org.restlet.engine.adapter.ClientAdapter.toSpecific(ClientAdapter.java:163)
    at org.restlet.engine.adapter.HttpClientHelper.handle(HttpClientHelper.java:118)
    at org.restlet.Client.handle(Client.java:153)
    at org.restlet.routing.Filter.doHandle(Filter.java:150)
    at org.restlet.routing.Filter.handle(Filter.java:197)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1092)
    at org.restlet.resource.ClientResource.retry(ClientResource.java:1650)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1100)
    at org.restlet.resource.ClientResource.retry(ClientResource.java:1650)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1100)
    at org.restlet.resource.ClientResource.handleOutbound(ClientResource.java:1176)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1047)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:1023)
    at org.restlet.resource.ClientResource.handle(ClientResource.java:928)
    at org.restlet.resource.ClientResource.get(ClientResource.java:636)
    at com.softlayer.objectstorage.Client.httpRequest(Client.java:245)
    at com.softlayer.objectstorage.Client.get(Client.java:177)
    at com.softlayer.objectstorage.Client.auth(Client.java:128)
    at com.softlayer.objectstorage.Client.<init>(Client.java:107)
    at com.softlayer.objectstorage.Container.<init>(Container.java:77)
    at com.wrakafka.consumer.ObjectStorageUtil.createContainer(ObjectStorageUtil.java:24)
    at spark.KafkaConsumer.main(KafkaConsumer.java:51)

不幸的是,您只能使用以下方式上载文件: Softlayer对象存储Java客户端 (无法创建对象),这里是用于身份验证,创建容器和使用客户端上载文件的示例:

package com.softlayer.objectstorage.main;

import java.util.HashMap;
import java.util.Map;
import com.softlayer.objectstorage.Container;
import com.softlayer.objectstorage.ObjectFile;


public class ObjectStorage {
    String baseUrl;
    String user;
    String password;

    public ObjectStorage(String baseUrl, String user, String password){
        this.baseUrl = baseUrl;
        this.user = user;
        this.password = password;
    }

    public void createContainer(String containerName){

        try{
            Container containerCreate = new Container(containerName, baseUrl, user,
                    password, true);
            containerCreate.create();

        }catch (Exception e)
        {
            System.out.println(e);
        }
    }

    public void UploadFile(String containerName, String fileName, String path)
    {
        try{
            ObjectFile oFile = new ObjectFile(fileName, containerName, baseUrl, user, password, true);
            Map<String, String> tags = new HashMap<String, String>();
            tags.put("testtag", "Test Value");
            String newOb = oFile.uploadFile(path, tags);
        }catch (Exception e)
        {
            System.out.println(e);
        }


    }

    public static void main(String[] args) {

        /**
         * Define Object Storage's parameters
         */
        String baseUrl = "https://dal05.objectstorage.softlayer.net/auth/v1.0/";
        String user = "set me";
        String password = "set me";

        // Define the container name to create
        String containerName = "containerTest";
        // Define the file name to create in the object storage
        String fileName = "newTest.txt";
        // Define the location path from file that you wish to upload
        String pathFile = "C:\\Users\\Ruber Cuellar\\Documents\\test.txt";

        // Create Object Storage connection
        ObjectStorage objectStorage = new ObjectStorage(baseUrl, user, password);
        // Create Container
        objectStorage.createContainer(containerName);
        // Upload file
        objectStorage.UploadFile(containerName, fileName, pathFile);

    }
}

希望对您有所帮助,让我知道任何疑问或意见

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM