如何使用JAVA在对象存储中创建对象? [英] How to create Object in Object Storage Using JAVA?

查看:195
本文介绍了如何使用JAVA在对象存储中创建对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道如何通过获取身份验证并比调用API创建对象

I know how to create object by get authenticate and than call API

下面的链接是有关如何进行身份验证的信息, 从API连接对象存储时发生未经授权的错误来自邮递员

Here below link is information available how to get authenticate, Unauthorized error while connecting Object Storage from API from Postman

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

Is there any library available in JAVA to perform these operation?

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

I got library from below link but it seems old one and not working, https://github.com/softlayer/softlayer-object-storage-java/tree/master/sl-objectstorage

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

If anyone know Can you please post how to operate it?

通过使用低于错误的库

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)

推荐答案

很遗憾,您只能使用以下文件上传文件:软件层对象存储Java客户端(无法创建对象),以下是用于身份验证,创建容器并使用客户端上传文件的示例:

Unfortunately, you can only upload files using: Softlayer Object Storage Java Client (it's not possible to create objects), here an example for authentication, create container and upload a file using the client:

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);

    }
}

我希望它会有所帮助,让我知道任何疑问或评论

I hope it helps, let me know any doubt or comment

这篇关于如何使用JAVA在对象存储中创建对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆