简体   繁体   English

无法在 Android 应用程序中使用 Amazon S3 SDK 上传图像。 400错误

[英]Not able to upload image using Amazon S3 SDK in Android application. 400 error

I am trying to implement Amazon S3 SDK to upload image from Android application but always getting this 400 error, malformed xml bad request.我正在尝试实施 Amazon S3 SDK 以从 Android 应用程序上传图像,但总是收到此 400 错误,格式错误的 xml 错误请求。 I've taken source code from this reference link我从这个参考链接中获取了源代码

I've correct access_key , secret_key and bucket_key .我有正确的access_keysecret_keybucket_key There is no error related to this.没有与此相关的错误。

If anybody have a working sample in order to access this S3 API, please share.如果有人有工作示例可以访问此 S3 API,请分享。 I am not able to find SDK error and stuck with the same.我无法找到 SDK 错误并坚持下去。

I think this would help you to upload image我认为这会帮助您上传图片

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);

EDIT编辑

Use this for generating URL使用它来生成 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM