sh 在18行Shell中上传到S3(用于上传http://soltrader.net的版本)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 在18行Shell中上传到S3(用于上传http://soltrader.net的版本)相关的知识,希望对你有一定的参考价值。

# You don't need Fog in Ruby or some other library to upload to S3 -- shell works perfectly fine
# This is how I upload my new Sol Trader builds (http://soltrader.net)
# Based on a modified script from here: http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash

S3KEY="my aws key"
S3SECRET="my aws secret" # pass these in

function putS3
{
  path=$1
  file=$2
  aws_path=$3
  bucket='my-aws-bucket'
  date=$(date +"%a, %d %b %Y %T %z")
  acl="x-amz-acl:public-read"
  content_type='application/x-compressed-tar'
  string="PUT\n\n$content_type\n$date\n$acl\n/$bucket$aws_path$file"
  signature=$(echo -en "${string}" | openssl sha1 -hmac "${S3SECRET}" -binary | base64)
  curl -X PUT -T "$path/$file" \
    -H "Host: $bucket.s3.amazonaws.com" \
    -H "Date: $date" \
    -H "Content-Type: $content_type" \
    -H "$acl" \
    -H "Authorization: AWS ${S3KEY}:$signature" \
    "https://$bucket.s3.amazonaws.com$aws_path$file"
}

for file in "$path"/*; do
  putS3 "$path" "${file##*/}" "/path/on/s3/to/files/"
done

以上是关于sh 在18行Shell中上传到S3(用于上传http://soltrader.net的版本)的主要内容,如果未能解决你的问题,请参考以下文章

sh 一个小的shell脚本,显示如何将文件上传到S3。用法可以用于ELB

将图像从库中上传到服务器

将上传的 JPEG 转换为渐进式并在 PHP 中上传到服务器

将所选图像从库中上传到gridview

在 S3 中上传输入流块后无法解压缩 gzip 文件

在 Spring 或 J2EE 中上传到服务器时的视频文件时间长度(以分钟为单位)