как я могу получить доступ к S3 с помощью jets3t? - PullRequest
2 голосов
/ 06 апреля 2011

Привет, я пытаюсь получить доступ к S3 с использованием библиотеки jets3t .Я просто следовал примеру кода, поддерживаемого AWS ( здесь URL ), вот мой простой код

import org.jets3t.service.S3Service;
import org.jets3t.service.S3ServiceException;
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
import org.jets3t.service.model.S3Bucket;
import org.jets3t.service.security.AWSCredentials;

public class Test1 {

    /**
     * @param args
     */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    String awsAccessKey = "******************";
    String awsSecretKey = "*********************************";

    System.out.println("0");
    AWSCredentials awsCredentials = new AWSCredentials(awsAccessKey, awsSecretKey);

    try{
    S3Service s3Service = new RestS3Service(awsCredentials);

    System.out.println("1");

    S3Bucket testBucket = s3Service.getOrCreateBucket("first_test_bucket");
    System.out.println("Created test bucket: " + testBucket.getName());

    S3Bucket[] myBuckets = s3Service.listAllBuckets();

    System.out.println("2");

    System.out.println("How many buckets to I have in S3? " + myBuckets.length);

    System.out.println("3");

    }
    catch (Exception e){

        System.out.println("exception: " + e.toString());

    }

}

}

, но я столкнулся с такой проблемой

0
15:24:39 DEBUG (service.Jets3tProperties - getBoolProperty:315) - s3service.https-only=true
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - storage-service.internal-error-retry-max=5
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - httpclient.connection-timeout-ms=60000
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - httpclient.socket-timeout-ms=60000
15:24:39 DEBUG (service.Jets3tProperties - getBoolProperty:315) - httpclient.stale-checking-enabled=true
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - httpclient.max-connections=20
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - httpclient.max-connections-per-host=0
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - httpclient.useragent=null
15:24:39 DEBUG (utils.RestUtils - initHttpConnection:320) - Setting user agent string: JetS3t/0.8.0 (Windows 7/6.1; x86; ko; JVM 1.6.0_20)
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - httpclient.retry-max=5
15:24:39 DEBUG (service.Jets3tProperties - getLongProperty:279) - httpclient.connection-manager-timeout=0
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=null
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.default-storage-class=null
15:24:39 DEBUG (service.Jets3tProperties - getBoolProperty:315) - httpclient.proxy-autodetect=true
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - devpay.user-token=null
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - devpay.product-token=null
15:24:39 DEBUG (service.Jets3tProperties - getBoolProperty:315) - httpclient.requester-pays-buckets-enabled=false
1
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.default-bucket-location=US
15:24:39 DEBUG (httpclient.RestStorageService - listAllBucketsImpl:1180) - Listing all buckets for user: AKIAI6TCJ7BDPCPTHV2A
15:24:39 DEBUG (service.Jets3tProperties - getBoolProperty:315) - s3service.disable-dns-buckets=false
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint-virtual-path=
15:24:39 DEBUG (service.Jets3tProperties - getIntProperty:297) - s3service.s3-endpoint-https-port=443
15:24:39 DEBUG (httpclient.RestStorageService - setupConnection:1053) - S3 URL: https://s3.amazonaws.com:443/
15:24:39 DEBUG (httpclient.RestStorageService - performRequest:340) - Performing GET request for 'https://s3.amazonaws.com/', expecting response codes: [200]
15:24:39 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:591) - Adding authorization for Access Key 'AKIAI6TCJ7BDPCPTHV2A'.
15:24:39 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:24:39 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:643) - Canonical string ('|' is a newline): GET|||Wed, 06 Apr 2011 06:24:39 GMT|/
15:25:01 DEBUG (utils.RestUtils$1 - retryMethod:345) - Retrying GET request with path '/' - attempt 1 of 5
15:25:01 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:591) - Adding authorization for Access Key 'AKIAI6TCJ7BDPCPTHV2A'.
15:25:01 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:25:01 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:643) - Canonical string ('|' is a newline): GET|||Wed, 06 Apr 2011 06:25:01 GMT|/
15:25:01  INFO (httpclient.HttpMethodDirector - executeWithRetry:439) - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
15:25:01  INFO (httpclient.HttpMethodDirector - executeWithRetry:445) - Retrying request
15:25:22 DEBUG (utils.RestUtils$1 - retryMethod:345) - Retrying GET request with path '/' - attempt 2 of 5
15:25:22 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:591) - Adding authorization for Access Key 'AKIAI6TCJ7BDPCPTHV2A'.
15:25:22 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:25:22 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:643) - Canonical string ('|' is a newline): GET|||Wed, 06 Apr 2011 06:25:22 GMT|/
15:25:22  INFO (httpclient.HttpMethodDirector - executeWithRetry:439) - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
15:25:22  INFO (httpclient.HttpMethodDirector - executeWithRetry:445) - Retrying request
15:25:43 DEBUG (utils.RestUtils$1 - retryMethod:345) - Retrying GET request with path '/' - attempt 3 of 5
15:25:43 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:591) - Adding authorization for Access Key 'AKIAI6TCJ7BDPCPTHV2A'.
15:25:43 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:25:43 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:643) - Canonical string ('|' is a newline): GET|||Wed, 06 Apr 2011 06:25:43 GMT|/
15:25:43  INFO (httpclient.HttpMethodDirector - executeWithRetry:439) - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
15:25:43  INFO (httpclient.HttpMethodDirector - executeWithRetry:445) - Retrying request
    15:26:04 DEBUG (utils.RestUtils$1 - retryMethod:345) - Retrying GET request with path '/' - attempt 4 of 5
15:26:04 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:591) - Adding authorization for Access Key 'AKIAI6TCJ7BDPCPTHV2A'.
15:26:04 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:26:04 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:643) - Canonical string ('|' is a newline): GET|||Wed, 06 Apr 2011 06:26:04 GMT|/
15:26:04  INFO (httpclient.HttpMethodDirector - executeWithRetry:439) - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
15:26:04  INFO (httpclient.HttpMethodDirector - executeWithRetry:445) - Retrying request
15:26:25 DEBUG (utils.RestUtils$1 - retryMethod:345) - Retrying GET request with path '/' - attempt 5 of 5
15:26:25 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:591) - Adding authorization for Access Key 'AKIAI6TCJ7BDPCPTHV2A'.
15:26:25 DEBUG (service.Jets3tProperties - getStringProperty:261) - s3service.s3-endpoint=s3.amazonaws.com
15:26:25 DEBUG (httpclient.RestStorageService - authorizeHttpRequest:643) - Canonical string ('|' is a newline): GET|||Wed, 06 Apr 2011 06:26:25 GMT|/
15:26:25  INFO (httpclient.HttpMethodDirector - executeWithRetry:439) - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
15:26:25  INFO (httpclient.HttpMethodDirector - executeWithRetry:445) - Retrying request
15:26:46 DEBUG (httpclient.RestStorageService - performRequest:538) - Releasing HttpClient connection after error: Connection timed out: connect
exception: org.jets3t.service.S3ServiceException: Request Error. GET '/'

Я полагаю, что это проблема с брандмауэром, так как я использую этот код в своей компании.Кто-нибудь знает эту проблему?помощь!

Ответы [ 2 ]

3 голосов
/ 12 октября 2012

Вам необходимо установить конфигурации Jets3t в формате текстового файла и задать свойства класса Jets3t следующим образом:

Jets3tProperties jets3=new Jets3tProperties();
jets3.loadAndReplaceProperties(new FileInputStream("/root/Desktop/jets3t.properties"), "jets3t.properties");
3 голосов
/ 06 апреля 2011

В вашем - не так легко читаемом - журнале есть некоторые "Время ожидания подключения: исключение подключения: ...".Так что да, это может быть связано с тем, что вы находитесь за прокси-сервером (сервисы Amazon S3 Rest прослушивают порт 443).

Возможно, вы захотите настроить JetS3t для использования прокси.Создайте файл свойств jets3t.properties и добавьте следующие свойства:

httpclient.proxy-host=your proxy host
httpclient.proxy-port=your proxy port
httpclient.proxy-user=proxy user
httpclient.proxy-password=password

дополнительная информация здесь: http://jets3t.s3.amazonaws.com/toolkit/configuration.html#jets3t

Также обратите внимание, что существует несколько стабильная тестовая заглушка S3, которую выможно использовать для тестирования: https://github.com/technoweenie/parkplace

...