summaryrefslogtreecommitdiffstats
path: root/fb
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xssn.at>2010-10-24 11:19:45 +0200
committerFlorian Pritz <bluewind@xssn.at>2010-10-24 11:19:45 +0200
commit45cdf314e4eaa3ff7c0e48ae64b45c00a4f45964 (patch)
tree03f745b873a06a4e25ff89537542e84a8a4da18e /fb
parentf7be5d413416d558357ba2d2310f2e08800da9ac (diff)
reduce memory consumption when uploading
Pipeing the file to curl causes curl to store it in memory until it recieves an EOF. Therefore we should only use a pipe if we can't upload dynamic files. Signed-off-by: Florian Pritz <bluewind@xssn.at>
Diffstat (limited to 'fb')
-rwxr-xr-xfb14
1 files changed, 11 insertions, 3 deletions
diff --git a/fb b/fb
index 30c02f7..5df2370 100755
--- a/fb
+++ b/fb
@@ -58,9 +58,17 @@ do_upload() {
return 1
fi
fi
- if ! cat "$file" | curl -# -n -L -A $USERAGENT $EXTRA -F "file=@-;filename=$basefilename" "$PASTEBIN/file/do_upload" > $TMPFILE; then
- EXITCODE=1
- return 1
+ CURLOPTS="-# -n -L -A $USERAGENT $EXTRA"
+ if [ `stat -c %s "$file"` -eq "0" ]; then
+ if ! curl $CURLOPTS -F "file=@-;filename=$basefilename" "$PASTEBIN/file/do_upload" < "$file" > $TMPFILE; then
+ EXITCODE=1
+ return 1
+ fi
+ else
+ if ! curl $CURLOPTS -F "file=@$file" "$PASTEBIN/file/do_upload" > $TMPFILE; then
+ EXITCODE=1
+ return 1
+ fi
fi
sed '$d' $TMPFILE >&2
URL=`tail -1 $TMPFILE`