簡體   English   中英

無法在 Android 應用程序中使用 Amazon S3 SDK 上傳圖像。 400錯誤

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

我正在嘗試實施 Amazon S3 SDK 以從 Android 應用程序上傳圖像,但總是收到此 400 錯誤,格式錯誤的 xml 錯誤請求。 我從這個參考鏈接中獲取了源代碼

我有正確的access_keysecret_keybucket_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM