如何使用 Java 将文件上传到 AWS 中的预签名 URL?

Ham*_*Ali 6 java amazon-s3 amazon-web-services aws-lambda aws-java-sdk

URL url = new URL("https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A225178842088%3Aproject%3A1e6bbc52-5070-4505-b4aa-592d5e807b15/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A225178842088%3Aupload%3A1e6bbc52-5070-4505-b4aa-592d5e807b15/501fdfee-877b-42b7-b180-de584309a082/Hamza-test-app.apk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20181011T092801Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAJSORV74ENYFBITRQ%2F20181011%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=f041f2bf43eca1ba993fbf7185ad8bcb8eccec8429f2877bc32ab22a761fa2a");
        File file = new File("C:\\Users\\Hamza\\Desktop\\Hamza-test-app.apk");
        //Create Connection
        HttpURLConnection connection =  (HttpURLConnection) url.openConnection();
        connection.setDoOutput(true);
        connection.setRequestMethod("PUT");
        BufferedOutputStream bos = new BufferedOutputStream(connection.getOutputStream());
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
        int i;
        // read byte by byte until end of stream
        while ((i = bis.read()) > 0) {
    bos.write(i);
        }
        bos.flush();
        bis.close();
        bos.close();


        System.out.println("HTTP response code: " + connection.getResponseCode());
    }catch(Exception ex){
        System.out.println("Failed to Upload File");
    }
Run Code Online (Sandbox Code Playgroud)

我想用 java 将文件上传到 aws 农场设备,但文件未上传到 aws 项目上传列表。

Ban*_*omi -2

您应该使用此处所示的 AWS 开发工具包