From 7c34cf235bfc187253b2808f897377e22d1c5ec3 Mon Sep 17 00:00:00 2001
From: Cristian Re <recris@amazon.com>
Date: Tue, 13 Aug 2019 11:29:16 -0300
Subject: [PATCH 1/2] implement client with bash

---
 multipart/README.md   | 15 ++++++++-------
 multipart/client.py   | 36 ------------------------------------
 multipart/client.sh   | 11 +++++++++++
 multipart/example.png |  5 +++++
 4 files changed, 24 insertions(+), 43 deletions(-)
 delete mode 100644 multipart/client.py
 create mode 100755 multipart/client.sh
 create mode 100644 multipart/example.png

diff --git a/multipart/README.md b/multipart/README.md
index 0da2dbf8..5eb57b38 100644
--- a/multipart/README.md
+++ b/multipart/README.md
@@ -12,13 +12,14 @@ cargo run (or ``cargo watch -x run``)
 # Started http server: 127.0.0.1:8080
 ```
 
-### client
+### browser
 
-- ``pip install aiohttp``
-- ``python client.py``
+- go to ``http://localhost:8080``
+- upload file
+- you should see the action reflected in server console
+
+### client (optional)
+
+- ``./client.sh``
 - you must see in server console multipart fields
 
-if ubuntu :
-
-- ``pip3 install aiohttp``
-- ``python3 client.py``
diff --git a/multipart/client.py b/multipart/client.py
deleted file mode 100644
index d82c54dd..00000000
--- a/multipart/client.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python3
-
-# This script could be used for actix-web multipart example test
-# just start server and run client.py
-
-import asyncio
-import aiohttp
-
-async def req1():
-    with aiohttp.MultipartWriter() as writer:
-        writer.append('test')
-        writer.append_json({'passed': True})
-
-    resp = await aiohttp.ClientSession().request(
-        "post", 'http://localhost:8080/',
-        data=writer, headers=writer.headers)
-    print(resp)
-    assert 200 == resp.status
-
-
-async def req2():
-    with aiohttp.MultipartWriter() as writer:
-        writer.append('test')
-        writer.append_json({'passed': True})
-        writer.append(open('src/main.rs'))
-
-    resp = await aiohttp.ClientSession().request(
-        "post", 'http://localhost:8080/',
-        data=writer, headers=writer.headers)
-    print(resp)
-    assert 200 == resp.status
-
-
-loop = asyncio.get_event_loop()
-loop.run_until_complete(req1())
-loop.run_until_complete(req2())
diff --git a/multipart/client.sh b/multipart/client.sh
new file mode 100755
index 00000000..10d82343
--- /dev/null
+++ b/multipart/client.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+function SubmitFile () {
+  curl -X POST \
+  -H "Content-Type: multipart/related" \
+  --form "data=@example.png;type=image/png" http://localhost:8080
+}
+
+SubmitFile & SubmitFile & SubmitFile &
+SubmitFile & SubmitFile & SubmitFile &
+SubmitFile & SubmitFile & SubmitFile
diff --git a/multipart/example.png b/multipart/example.png
new file mode 100644
index 00000000..284b8a2f
--- /dev/null
+++ b/multipart/example.png
@@ -0,0 +1,5 @@
+------------------------------4ebf00fbcf09
+Content-Disposition: form-data; name="example"
+
+test
+------------------------------4ebf00fbcf09--

From b358d6634499972f36daab40a0ee29c0840a1437 Mon Sep 17 00:00:00 2001
From: Cristian Re <recris@amazon.com>
Date: Tue, 13 Aug 2019 12:10:52 -0300
Subject: [PATCH 2/2] replace png file for a real png

---
 multipart/example.png | Bin 141 -> 1190 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/multipart/example.png b/multipart/example.png
index 284b8a2fe2ef0bb7f69aa9c5b4647521e2c5a96b..2899104018929d26690630a2c54602e9ead5f35d 100644
GIT binary patch
literal 1190
zcmaJ=OQ_X#5dO^QanevSsIX8ODvA>~3?)mtSMNo~!XzAADPHZ|5}I>;oIuMKUMv-q
zY8DnrQH#JkMg-Pm;i5niB5EU%PAvivi9`rOeAM(myH@_-_u71XuW7fhw;t<k7#kQE
z+puwL;PKYd@oulv?X`zDZQDG)ZBuX4cz4m9vGJ|ietxt!`ox^>sCE|5>uev@%`bK4
zwOYN-wqEOc=<W9Z@!RdzzEvxiO>f=P0x+GI4?ox3Gn;+;EmNEG-}yJc0ZhfJXI76i
zUqAo{3IvdV98_R{1?=F00xD3477Q?fIjj&s2*MGC1X7TWtOf}sC`VNv5<+l75rIgE
zoT!LFEW}P+q#zYiCoM9N37L}>1t^5VDT)%5Lg|#%u%i+xr>Z_p2*Vl01SVl}reX%O
zFgtUxf>l_Zwb;NWY|d63;1CYyC{Az+r*l@Lm`k{vtNPL*3Rjd8ltjsuN*T(c?8>DI
zRZ(@-QiGbPxmsyJLo{5YG@&V)u33$XTB7Az)wdI3a6=ivNQ~U5jA1OsZd|4?6;n4Y
zGnk2)o0SDD#KJAg5|(1=menL<C01@#{fHm|4^$9>B*=p*7{L<k!4-;73H8tlLzskl
zSVbU0B0QoZ5h;-#Sxwqe66I0Vj~$ZmL?t0fl02!Bku1rcT&YNvR8Ormq)D2mRR%I7
z!!s%qnUd+5)ifwevOKH$Re}_}X;o9EA}R8w0Zs75QtVAyO-Q9u>W#CFp=DC$jSG$V
z3aRjhaYM9HD!oB(K&zz6o7W$Qx{ovyaEgbAR&PIZ@3W6~Zy1_3`{Is|XT3c!_~6LA
z_h;@I9=dzo;GHAi-}cv=JLj(T<GUv&cFujRHDleeBTIk!VE@7ciw~Zhzwrv@;Dw9F
z7cLpxb$-Q`cQ>y;ac0Xuzbu+Lx!~5*pa1&V;fHqbJ$7Nu`Y9X7zFGbHRKb+RpDbVV
zz>)91JbCTxTkrk;V(-$z^GkpG=<3+HLwCJ=wR>X!p4oTM*Oy+o^!Ka$t^9ER<cZT?
z9a-_=!Ce<l?K!Yu?fjuHX3zS0$K|bcC1%`LH$Hv#+~uP?ZrXS8+KMOlP5xL<9o_rz
Y?rF>38T|8br$6F6vU2#-CF>{t17flp3IG5A

delta 6
NcmZ3+*~>Vg7XSzQ0$Tt8