Using curl to upload file to Django without csrf_exempt

簡單的說就是利用 cookie 來取得必要的 CSRF TOKEN 資訊。

#!/bin/sh

ENDPOINT=http://localhost:8000/uploads/simple/
COOKIE_JAR=cookies.txt
# 是否要讓 curl 顯示詳細的資訊 (含 header 等)
# VERBOSE=-v
VERBOSE=

# Get
# 用 -c 存到 cookies.txt
curl \
    $VERBOSE \
    -c $COOKIE_JAR \
    $ENDPOINT

# Get CSRF token from cookies.txt
# cat $COOKIE_JAR
CSRFTOKEN=$(awk '/csrftoken/{print $7;}' $COOKIE_JAR)
echo "CSRFTOKEN=$CSRFTOKEN"

# POST 時,在標頭 X-CSRFToken 帶入剛剛找到的 CSRF token
curl \
    $VERBOSE \
    -X POST \
    -b $COOKIE_JAR \
    -H "X-CSRFToken: $CSRFTOKEN" \
    -F myfile=@image003.png \
    $ENDPOINT

算IOPS

上個月公司 AWS 帳單來時,看到 EBS 使用率提高,所以費用增加不少

剛剛去算了一下目前的 IOPS ,然後套到 aws 計算機去算。

先用 AWS CloudWatch 去指定要看的 EBS volume 、指標(VolumeReadOps/VolumeWriteOps)以及日期區間,把統計方式改為總和,然後用最高點的數值套這公式: (VolumeReadOps + VolumeWriteOps) / 區間的秒數,算出目前用的 IOPS 是 106 左右。

計算方式是參考這兩個連結:

然後到 AWS 計算機網頁,目前 EBS volume type 是 magnetic(standard),storage  250 G,IOPS 填入 106,算出金額約 39.79,接著將 Volume type 改為 gp2,金額變成 26.40。

所以選擇適當的 EBS volume type 是有助於省錢的。