使用AWS S3 SDK / JetS3t以编程方式访问Walrus(Java)

时间:2011-10-06 21:18:09

标签: amazon-s3 amazon-web-services eucalyptus walrus

我正在寻找使用AWS SDK for Java访问Walrus(Eucalyptus)的方法。我熟悉使用AWS SDK以使用我的AWS凭证以编程方式连接到Amazon S3。但是,当我用Google搜索以检查是否可以使用AWS SDK访问Walrus时,我发现存在问题,唯一的出路就是使用JetS3t。

之前有人玩过JetS3t和Walrus吗? JetS3t是一个可靠的解决方案吗? 我可以使用JetS3t和Walrus镜像在AWS SDK中针对S3做的任何事情吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

您可以使用相同的代码来访问海象s3。但是,您需要通过在构建中包含正确编辑的jets3t.properties文件,将jets3t指向您的walrus实例。

答案 1 :(得分:0)

我知道这是一个老问题,很久以前就问过,但是想要快速更新AWS JAVA SDK 1.4.0与Walrus一起使用,如果您正在寻找一个示例代码来解释我们如何使用AWS JAVA SDK 1.4.0对阵海象,请参阅

https://gist.github.com/jeevanullas/5351730#file-walrustest-java

这对Eucalyptus 3.2.2(当前稳定版本)和3.3.0(当前开发版本)效果不错

希望这很有用。

答案 2 :(得分:0)

我使用了AWS SDK,它对我来说非常有效。这是我为将本地驱动器上的文件上传到Walrus而编写的示例代码。希望你觉得它很有用。

    AmazonS3 s3 = new AmazonS3Client(new AWSCredentials() {
        @Override
        public String getAWSSecretKey() {
            return "G0WewmHyE5KYaGcVWvSAQrsBsPnJb2qQOPIIc74h";
        }

        @Override
        public String getAWSAccessKeyId() {
            return "4OFCOBFGPGVINNR7H6TMG";
        }
    });
    s3.setEndpoint("http://10.14.99.97:8773/services/Walrus/");
    byte[] bytes = convertToByteArray("/home/harshit/Desktop/poster.jpg"); // function written by me for extracting byte stream out of a local file
    ByteArrayInputStream is = new ByteArrayInputStream(bytes);
    PutObjectRequest request = new PutObjectRequest("skg", "foo.jpg", is, metaData);
    s3.putObject(request);