[英]Not able to upload image using Amazon S3 SDK in Android application. 400 error
我正在嘗試實施 Amazon S3 SDK 以從 Android 應用程序上傳圖像,但總是收到此 400 錯誤,格式錯誤的 xml 錯誤請求。 我從這個參考鏈接中獲取了源代碼
我有正確的access_key
, secret_key
和bucket_key
。 沒有與此相關的錯誤。
如果有人有工作示例可以訪問此 S3 API,請分享。 我無法找到 SDK 錯誤並堅持下去。
我認為這會幫助您上傳圖片
String EXPIRY_DATE = "Mon, Jan 1 2030 11:11:11 GMT";
BasicAWSCredentials awsCreds = new BasicAWSCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY);
AmazonS3Client s3Client = new AmazonS3Client(awsCreds);
ResponseHeaderOverrides override = new ResponseHeaderOverrides();
override.setContentType("image/jpeg");
override.setExpires(EXPIRY_DATE);
File imageFile = new File(path);
PutObjectRequest pros = new PutObjectRequest(BUCKET_NAME, BUCKET_PATH, imageFile);
ObjectMetadata meta = new ObjectMetadata();
meta.addUserMetadata("expires", EXPIRY_DATE);
meta.setHeader("expires", EXPIRY_DATE);
pros.setMetadata(meta);
s3Client.putObject(pros);
編輯
使用它來生成 URL
String generatedURL=null;
try {
String key = BUCKET_PATH + ImageName;
GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(BUCKET_NAME, key);
Date date1 = new Date(EXPIRY_DATE);
urlRequest.setExpiration(date1);
urlRequest.setResponseHeaders(override);
URL url = s3Client.generatePresignedUrl(urlRequest);
generatedURL = url.toString();
} catch (Exception e) {
logger.error("Error at ", e);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.