AWS S3DownloadTask 无法解析主机:没有与主机名关联的地址
AWS S3DownloadTask is Unable to resolve host: No address associated with hostname
我正在尝试从我在 Android 上的 Amazon S3 存储桶中下载,但出现此错误:
java.net.UnknownHostException: Unable to resolve host "cognito-identity.us-west-2.amazonaws.com": No address associated with hostname
这一行
Download down = manager.download(AWSClientManager.S3_BUCKET_NAME, fileToDownload, file);
我不确定为什么我的 CognitoCachingCredentialsProvider 默认使用 us-west-2 是 us-east-1
即便如此,我的 s3 存储的以下位置具有完全相同的文件:
https://console.aws.amazon.com/s3/home?region=us-east-1
https://console.aws.amazon.com/s3/home?region=us-west-2
我不知道为什么会出现上述错误,有人可以帮忙吗?
嗨@Mark,
我的 CognitoCachingCredentialsProvider 设置为 US_EAST_1
我正在使用 AmazonS3Client 下载 S3 文件。我认为这可能是问题所在。我明确设置了区域,尽管它似乎完全无视这一点。
这是我的错误代码:
private S3TaskResult downloadResources(String fileToDownload) {
S3TaskResult result = new S3TaskResult();
File file = new File(downloadDirectory, fileToDownload);
try {
manager.getAmazonS3Client().setRegion(com.amazonaws.regions.Region.getRegion(Regions.US_EAST_1));
Download down = manager.download(AWSClientManager.S3_BUCKET_NAME, fileToDownload, file);
down.addProgressListener(this);
down.waitForCompletion();
} catch (Exception e) {
// TODO: FIGURE OUT WHY IT ERRORS HERE :(
result.setErrorMessage(e.getMessage());
}
return result;
}
问题似乎是您尝试使用 Amazon Cognito is us-west-2。
java.net.UnknownHostException: Unable to resolve host "cognito-identity.us-west-2.amazonaws.com": No address associated with hostname
目前,Amazon Cognito 仅在 us-east-1、eu-west-1 和 ap-northeast-1 可用。
这并不意味着您不能使用 Cognito 凭据访问其他区域的 S3 存储桶,您只需将 Cognito 设置为使用上述区域之一(并在该区域设置您的身份池)。然后将您的 S3 客户端设置为使用您的存储桶所在的区域。
确保您使用正确的区域设置凭据提供程序:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(), // Context
"IDENTITY_POOL_ID", // Identity Pool ID
Regions.US_EAST_1 // Region
);
如此处所述:http://docs.aws.amazon.com/cognito/devguide/identity/getting-credentials/
我正在尝试从我在 Android 上的 Amazon S3 存储桶中下载,但出现此错误:
java.net.UnknownHostException: Unable to resolve host "cognito-identity.us-west-2.amazonaws.com": No address associated with hostname
这一行
Download down = manager.download(AWSClientManager.S3_BUCKET_NAME, fileToDownload, file);
我不确定为什么我的 CognitoCachingCredentialsProvider 默认使用 us-west-2 是 us-east-1
即便如此,我的 s3 存储的以下位置具有完全相同的文件:
https://console.aws.amazon.com/s3/home?region=us-east-1
https://console.aws.amazon.com/s3/home?region=us-west-2
我不知道为什么会出现上述错误,有人可以帮忙吗?
嗨@Mark, 我的 CognitoCachingCredentialsProvider 设置为 US_EAST_1
我正在使用 AmazonS3Client 下载 S3 文件。我认为这可能是问题所在。我明确设置了区域,尽管它似乎完全无视这一点。
这是我的错误代码:
private S3TaskResult downloadResources(String fileToDownload) {
S3TaskResult result = new S3TaskResult();
File file = new File(downloadDirectory, fileToDownload);
try {
manager.getAmazonS3Client().setRegion(com.amazonaws.regions.Region.getRegion(Regions.US_EAST_1));
Download down = manager.download(AWSClientManager.S3_BUCKET_NAME, fileToDownload, file);
down.addProgressListener(this);
down.waitForCompletion();
} catch (Exception e) {
// TODO: FIGURE OUT WHY IT ERRORS HERE :(
result.setErrorMessage(e.getMessage());
}
return result;
}
问题似乎是您尝试使用 Amazon Cognito is us-west-2。
java.net.UnknownHostException: Unable to resolve host "cognito-identity.us-west-2.amazonaws.com": No address associated with hostname
目前,Amazon Cognito 仅在 us-east-1、eu-west-1 和 ap-northeast-1 可用。
这并不意味着您不能使用 Cognito 凭据访问其他区域的 S3 存储桶,您只需将 Cognito 设置为使用上述区域之一(并在该区域设置您的身份池)。然后将您的 S3 客户端设置为使用您的存储桶所在的区域。
确保您使用正确的区域设置凭据提供程序:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(), // Context
"IDENTITY_POOL_ID", // Identity Pool ID
Regions.US_EAST_1 // Region
);
如此处所述:http://docs.aws.amazon.com/cognito/devguide/identity/getting-credentials/