Xuanwo opened a new issue, #2152:
URL: https://github.com/apache/incubator-opendal/issues/2152

   Some services (gcs, azblob) suppoprt batch request via `multipart/mixed`
   
   For examples:
   
   ## Request
   
   ```http
   POST /batch/storage/v1 HTTP/1.1
   Host: storage.googleapis.com
   Content-Length: 960
   Content-Type: multipart/mixed; 
boundary="===============7330845974216740156=="
   Authorization: Bearer 
ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg
   
   --===============7330845974216740156==
   Content-Type: application/http
   Content-Transfer-Encoding: binary
   Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>
   
   PATCH /storage/v1/b/example-bucket/o/obj1 HTTP/1.1
   Content-Type: application/json
   accept: application/json
   content-length: 31
   
   {"metadata": {"type": "tabby"}}
   --===============7330845974216740156==
   Content-Type: application/http
   Content-Transfer-Encoding: binary
   Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>
   
   PATCH /storage/v1/b/example-bucket/o/obj2 HTTP/1.1
   Content-Type: application/json
   accept: application/json
   content-length: 32
   
   {"metadata": {"type": "tuxedo"}}
   --===============7330845974216740156==
   Content-Type: application/http
   Content-Transfer-Encoding: binary
   Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3>
   
   PATCH /storage/v1/b/example-bucket/o/obj3 HTTP/1.1
   Content-Type: application/json
   accept: application/json
   content-length: 32
   
   {"metadata": {"type": "calico"}}
   --===============7330845974216740156==--
   ```
   
   ## Response
   
   ```http
   HTTP/1.1 200 OK
   Content-Type: multipart/mixed; boundary=batch_pK7JBAk73-E=_AA5eFwv4m2Q=
   Date: Mon, 22 Jan 2018 18:56:00 GMT
   Expires: Mon, 22 Jan 2018 18:56:00 GMT
   Cache-Control: private, max-age=0
   Content-Length: 3767
   
   --batch_pK7JBAk73-E=_AA5eFwv4m2Q=
   Content-Type: application/http
   Content-ID: <response-b29c5de2-0db4-490b-b421-6a51b598bd22+1>
   
   HTTP/1.1 200 OK
   ETag: "lGaP-E0memYDumK16YuUDM_6Gf0/V43j6azD55CPRGb9b6uytDYl61Y"
   Content-Type: application/json; charset=UTF-8
   Date: Mon, 22 Jan 2018 18:56:00 GMT
   Expires: Mon, 22 Jan 2018 18:56:00 GMT
   Cache-Control: private, max-age=0
   Content-Length: 846
   
   {
    "kind": "storage#object",
    "id": "example-bucket/obj1/1495822576643790",
    .
    .
    .
    "metadata": {
     "type": "tabby"
     },
     .
     .
     .
   }
   
   --batch_pK7JBAk73-E=_AA5eFwv4m2Q=
   Content-Type: application/http
   Content-ID: <response-b29c5de2-0db4-490b-b421-6a51b598bd22+2>
   
   HTTP/1.1 200 OK
   ETag: "lGaP-E0memYDumK16YuUDM_6Gf0/91POdd-sxSAkJnS8Dm7wMxBSDKk"
   Content-Type: application/json; charset=UTF-8
   Date: Mon, 22 Jan 2018 18:56:00 GMT
   Expires: Mon, 22 Jan 2018 18:56:00 GMT
   Cache-Control: private, max-age=0
   Content-Length: 846
   
   {
    "kind": "storage#object",
    "id": "example-bucket/obj2/1495822576643790",
    .
    .
    .
    "metadata": {
     "type": "tuxedo"
     },
     .
     .
     .
   }
   
   --batch_pK7JBAk73-E=_AA5eFwv4m2Q=
   Content-Type: application/http
   Content-ID: <response-b29c5de2-0db4-490b-b421-6a51b598bd22+3>
   
   HTTP/1.1 200 OK
   ETag: "lGaP-E0memYDumK16YuUDM_6Gf0/d2Z1F1_ZVbB1dC0YKM9rX5VAgIQ"
   Content-Type: application/json; charset=UTF-8
   Date: Mon, 22 Jan 2018 18:56:00 GMT
   Expires: Mon, 22 Jan 2018 18:56:00 GMT
   Cache-Control: private, max-age=0
   Content-Length: 846
   
   {
    "kind": "storage#object",
    "id": "example-bucket/obj3/1495822576643790",
    .
    .
    .
    "metadata": {
     "type": "calico"
     },
     .
     .
     .
   }
   
   --batch_pK7JBAk73-E=_AA5eFwv4m2Q=--
   ```
   
   ## Tasks
   
   It's better for opendal to provide build and parse support in http_util.
   
   - [ ] Implemenet `AsyncBody::MultipartMixed(bounary, requests)`
   - [ ] Support parsing returning multipart-mixed response


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to