Я написал библиотеку на PHP, используя AWS для связи с сервером ECS. Теперь я переношу свой код в java. В java я использую тот же ключ и секрет, который я использовал в PHP.Идентификатор ключа доступа AWS, который вы предоставили, не существует в наших записях
В PHP я использовал следующий метод:
$s3 = Aws\S3\S3Client::factory(array('base_url' => $this->base_url, 'command.params' => array('PathStyle' => true), 'key' => $this->key, 'secret' => $this->secret));
В Java Я использую следующий метод
BasicAWSCredentials(String accessKey, String secretKey);
Я получаю следующее исключение:
Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: 3A3000708C8D7883), S3 Extended Request ID: U2rG9KLBBQrAqa6M2rZj65uhaHhOpZpY2VK1rXzqoGrKVd4R/JdR8aeih/skG4fIrecokE4FY3w=
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1401)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:945)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:723)
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:475)
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:437)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:386)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3996)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3933)
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:851)
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:857)
at com.justdial.DocUpload.DocUpload.main(DocUpload.java:22)
Нужно ли мне можно использовать новый ключ и секрет для Java или предыдущего.
Мои вопросы: 1 - Есть ли какие-либо предпосылки, которые нам необходимо выполнить перед использованием метода BasicAwsCredentials() AWS. 2 - Нужно ли создавать роли IAM. 3 - Если мы это сделаем, тогда как он узнает, какой IP-адрес попал, как в случае PHP в Aws \ S3 \ S3Client :: factory, я указывал базовый url.
Это я пробовал. Проблема существует. Мой вопрос: 1 - Есть ли какие-либо предпосылки, которые нам нужно выполнить, прежде чем использовать метод BasicAwsCredentials() AWS. 2 - Нужно ли создавать роли IAM. 3 - Если мы это сделаем, тогда как он узнает, какой IP-адрес попал, как в случае PHP в Aws \ S3 \ S3Client :: factory, я указывал базовый url. –
Я отредактировал тот же ответ, чтобы ответить на ваши вопросы, а также взглянуть на примеры из приведенной мной ссылки. Надеюсь, это поможет. – Venkatesh