アリクラウドオブジェクトストレージOSSサービス——アップロード/削除/画像取得


アリクラウドオブジェクトストレージOSSサービス——アップロード/削除/画像取得
1.準備
  • オブジェクトストレージOSSサービス
  • を開通する.
  • アクセスキーの作成(アリクラウドOSS SDKを使用する場合に必要)
  • Bucketを作成する(一意のBucket名を入力し、適切な領域を選択し、その他のオプションのデフォルト)
  • Spring Bootプロジェクトの作成
  • PostmanテストバックエンドAPI、Postmanのダウンロードおよび使用リファレンスの使用を推奨https://blog.csdn.net/fxbin123/article/details/80428216
  • 注意:Postmanを使用してアップロード画像機能をテストする場合、要求体(Body)のタイプをform-data
  • とする必要がある.
    2.画像のアップロード
        //         
        @PostMapping(value = "/image")
        public void uploadImage(MultipartFile file) {
            // MultipartFile  HTML form data       
            // EndPoint     
            String endPoint = "oss-cn-shanghai.aliyuncs.com";
            //    API  
            String accessKeyId = "";
            String accessKeySecret = "";
            String bucketName = "";
            OSSClient client = new OSSClient(endPoint, accessKeyId, accessKeySecret);
            client.putObject(bucketName, imageName, new ByteArrayInputStream(file.getBytes()));
            client.shutdown();
        }
    

    3.画像の削除
        //         
        @DeleteMapping(value = "/image/{imageName}")
        public void deleteImage(@PathVariable String imageName) {
            // EndPoint     
            String endPoint = "oss-cn-shanghai.aliyuncs.com";
            //    API  
            String accessKeyId = "";
            String accessKeySecret = "";
            String bucketName = "";
            OSSClient client = new OSSClient(endPoint, accessKeyId, accessKeySecret);
            client.deleteObject(bucketName, imageName);
            client.shutdown();
        }
    

    4.画像の取得
        //           
        @GetMapping(value = "/image/{imageName}")
        public byte[] getImage(@PathVariable String imageName) {
            // EndPoint     
            String endPoint = "oss-cn-shanghai.aliyuncs.com";
            //    API  
            String accessKeyId = "";
            String accessKeySecret = "";
            String bucketName = "";
            OSSClient client = new OSSClient(endPoint, accessKeyId, accessKeySecret);
            OSSObject image = client.getObject(bucketName, imageName);
            InputStream content = image.getObjectContent();
            if (content != null) {
                try {
                    //         buffer           
                    int length = 1920 * 1260 * 3;
                    byte[] buf = new byte[length];
                    int size = 0;
                    int temp;
                    while ((temp = content.read()) != -1) {
                        buf[size] = (byte) temp;
                        size++;
                    }
                    content.close();
                    //          ,             
                    return Arrays.copyOf(buf, size);
                } catch (IOException e) {
                    System.out.println("exception");
                    return null;
                }
            }
            client.shutdown();
            return null;
        }
    

    5.画像取得機能のテスト
    コンテンツをコピーしてSpring Bootプロジェクトのsrc/main/resources/staticディレクトリのファイルに貼り付けます
    
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Get Imagetitle>
    head>
    <body style="margin: 0;">
    
    <img src="http://localhost:80/image/"/>
    body>
    html>
    

    アリクラウドオブジェクトストレージOSS公式ドキュメント:https://help.aliyun.com/product/31815.html?spm=5176.8466032.0.0.7e8714505JnJY6