簡體   English   中英

如何使用presignedurl從android中的aws S3服務器上傳圖像

[英]How to upload image using presignedurl from aws S3 server in android

我正在嘗試從預先簽名的 url 將圖像上傳到 S3 存儲桶,它給出了由對等方關閉的 ssl 異常錯誤連接

這是我的代碼

public int upload(String filePath, URL url) {
 Bitmap bm = BitmapFactory.decodeFile(filePath);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.JPEG, 90, bos);
            byte[] fileBytes = bos.toByteArray();

            connection = (HttpURLConnection) url.openConnection();

            connection.setDoOutput(true);
            connection.setRequestMethod("PUT");
            connection.setRequestProperty("Connection", "Keep-Alive");
            connection.setRequestProperty("Content-Type", "application/octet-stream"); 

            OutputStream output = connection.getOutputStream();
            InputStream input = new ByteArrayInputStream(fileBytes);
            byte[] buffer = new byte[4096];
            int length;
            while ((length = input.read(buffer)) > 0) {
                output.write(buffer, 0, length);
            }
            output.flush();

            return connection.getResponseCode();
}

最后我想通了,這是使用預先簽名的 URL 將圖像發送到 S3 的代碼

try {

            Bitmap bm = BitmapFactory.decodeFile(fileBytes);
            connection = (HttpsURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestMethod("PUT");
            connection.setRequestProperty("Content-Type", "application/octet-stream"); // Very important ! It won't work without adding this!

            OutputStream output = connection.getOutputStream();


            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.JPEG, 50, output);
            output.flush();

            int response = connection.getResponseCode();

            return connection.getResponseCode();
        } catch (IOException e) {
            e.printStackTrace();
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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