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

Java 无法在Android应用程序中使用Amazon S3 SDK上载图像。400错误,java,android,image,amazon-s3,Java,Android,Image,Amazon S3,我试图实现AmazonS3SDK来从Android应用程序上传图像,但总是收到这个400错误、格式错误的xml错误请求。我从这个参考资料中获取了源代码 我有正确的access\u key,secret\u key和bucket\u key。没有与此相关的错误 如果任何人有一个工作的样本来访问这个S3API,请分享。我找不到SDK错误,并坚持使用相同的错误。我认为这将有助于您上传图像 String EXPIRY_DATE = "Mon, Jan 1 2030 11:11:11 GMT"; Basi

我试图实现AmazonS3SDK来从Android应用程序上传图像,但总是收到这个400错误、格式错误的xml错误请求。我从这个参考资料中获取了源代码

我有正确的
access\u key
secret\u key
bucket\u key
。没有与此相关的错误


如果任何人有一个工作的样本来访问这个S3API,请分享。我找不到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);
    }

关于TripsCpnstants,以及如何获取返回服务器url以查看图像。请帮我编辑你拿到了吗,只是你的照片过期了不,我没有得到任何编辑。如果我不想要任何有效期怎么办?它是修复性的吗?如果你不设置有效期,它会影响你阅读图像。最好设置有效期,但不是强制性的。好的。我会设置它,但你能告诉我如何接收服务器路径,其中图像是由这个代码上传。