![](/img/trans.png)
[英]how to resolve Exception in thread “main” com.amazonaws.AmazonClientException: Unable to build cipher: Illegal key size using aws s3
[英]com.amazonaws.AmazonClientException: Unable to execute HTTP request: peer not authenticated
我在amazon aws上創建了一個新帳戶以使用s3存儲桶,並編寫了此代碼以將一個圖像文件上傳到s3存儲桶,但這給了我以下異常:>無法執行HTTP請求:對等方未通過身份驗證。
這是我的主要方法:
public class Main2 {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\KDSss\\OneDrive\\Pictures\\my photo 001.jpg");
try {
InputStream targetStream = new FileInputStream(file);
S3Upload.uploadImage(targetStream, "Discussion", "jpg");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
這是我的S3Upload.java
public class S3Upload
{
public static void uploadImage(InputStream path, String imageName, String imageType) throws IOException
{
String existingBucketName = "housejoy/hjcustomerimage/";
String keyName = imageName+".png";
AmazonS3 s3Client = new AmazonS3Client(new PropertiesCredentials(UploadFile.class.getResourceAsStream("AwsCredentials.properties")));
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentType(imageType);
PutObjectRequest putObjectRequest = new PutObjectRequest(existingBucketName, keyName, path, objectMetadata);
putObjectRequest.setCannedAcl(CannedAccessControlList.PublicRead);
PutObjectResult result = s3Client.putObject(putObjectRequest);
System.out.println("Etag:" + result.getETag() + "-->" + result);
}
}
運行后,我得到了這個異常:
com.amazonaws.AmazonClientException: Unable to execute HTTP request: peer not authenticated
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:328)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2906)
at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1123)
at com.housejoy.ce.jaxb.S3Upload.uploadImage(S3Upload.java:32)......
Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:421)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151)........com.amazonaws.AmazonClientException: Unable to execute HTTP request: peer not authenticated
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:328)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2906)
at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1123)
at com.housejoy.ce.jaxb.S3Upload.uploadImage(S3Upload.java:32)
at com.housejoy.ce.service.UploadImageService.uploadImage(UploadImageService.java:171.................Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:421)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
你必須確定
用於身份驗證。 並使用:
AmazonS3 s3;
AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
s3 = new AmazonS3Client(credentials);
s3.setEndpoint(END_POINT_URL);
現在您可以使用s3
對象上傳圖像了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.