Программный доступ к Walrus (Java) с помощью AWS S3 SDK / JetS3t

#amazon-s3 #amazon-web-services #eucalyptus #walrus

#amazon-s3 #amazon-веб-сервисы #эвкалипт #walrus

Вопрос:

Я искал способы получить доступ к Walrus (Eucalyptus) с помощью AWS SDK для Java. Я знаком с использованием AWS SDK для программного подключения к Amazon S3 с использованием моих учетных данных AWS. Однако, когда я погуглил, чтобы проверить, доступен ли Walrus с помощью AWS SDK, я узнал, что есть проблемы, и единственный выход — использовать JetS3t вместо этого.

Кто-нибудь раньше играл с JetS3t и Walrus?
Является ли JetS3t надежным решением?
Могу ли я отразить все, что я могу сделать в AWS SDK, против S3 с помощью JetS3t и Walrus?

Заранее спасибо.

Ответ №1:

Вы можете использовать тот же точный код для доступа к вашему walrus, что и к s3. Однако вам необходимо указать jets3t на ваш экземпляр walrus, включив в свою сборку правильно отредактированный файл jets3t.properties.

Ответ №2:

Я знаю, что это старый вопрос, заданный давно, но просто хотел быстро сообщить, что AWS JAVA SDK 1.4.0 работает с Walrus, если вы ищете пример кода, объясняющий, как мы могли бы использовать AWS JAVA SDK 1.4.0 против Walrus, пожалуйста, посмотрите

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

Это отлично работает с Eucalyptus 3.2.2 (текущая стабильная версия) и 3.3.0 (текущая версия для разработки)

Надеюсь, это было полезно.

Ответ №3:

Я использовал 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);