使用Boto将文件从ec2传输到s3时出错

尼希尔·帕尔玛(Nikhil Parmar)

我正在按照此过程链接将mongodump上传到s3。

bash脚本

#!/bin/sh

MONGODB_SHELL='/usr/bin/mongo'

DUMP_UTILITY='/usr/bin/mongodump'
DB_NAME='amicus'

date_now=`date +%Y_%m_%d_%H_%M_%S`
dir_name='db_backup_'${date_now}
file_name='db_backup_'${date_now}'.bz2'

log() {
    echo $1
}

do_cleanup(){
    rm -rf db_backup_2010* 
    log 'cleaning up....'
}

do_backup(){
    log 'snapshotting the db and creating archive' && \
    ${MONGODB_SHELL} admin fsync_lock.js && \
    ${DUMP_UTILITY} -d ${DB_NAME} -o ${dir_name} && tar -jcf $file_name ${dir_name}
    ${MONGODB_SHELL} admin unlock.js && \
    log 'data backd up and created snapshot'
}

save_in_s3(){
    log 'saving the backup archive in amazon S3' && \
    python aws_s3.py set ${file_name} && \
    log 'data backup saved in amazon s3'
}

do_backup && save_in_s3 && do_cleanup

aws_s3.py

ACCESS_KEY=''
SECRET=''
BUCKET_NAME='s3:///s3.amazonaws.com/database-backup' #note that you need to create this bucket first

from boto.s3.connection import S3Connection
from boto.s3.key import Key

def save_file_in_s3(filename):
    conn = S3Connection(ACCESS_KEY, SECRET)
    bucket = conn.get_bucket(BUCKET_NAME)
    k = Key(bucket)
    k.key = filename
    k.set_contents_from_filename(filename)

def get_file_from_s3(filename):
    conn = S3Connection(ACCESS_KEY, SECRET)
    bucket = conn.get_bucket(BUCKET_NAME)
    k = Key(bucket)
    k.key = filename
    k.get_contents_to_filename(filename)

def list_backup_in_s3():
    conn = S3Connection(ACCESS_KEY, SECRET)
    bucket = conn.get_bucket(BUCKET_NAME)
    for i, key in enumerate(bucket.get_all_keys()):
        print "[%s] %s" % (i, key.name)

def delete_all_backups():
    #FIXME: validate filename exists
    conn = S3Connection(ACCESS_KEY, SECRET)
    bucket = conn.get_bucket(BUCKET_NAME)
    for i, key in enumerate(bucket.get_all_keys()):
        print "deleting %s" % (key.name)
        key.delete()

if __name__ == '__main__':
    import sys
    if len(sys.argv) < 3:
        print 'Usage: %s <get/set/list/delete> <backup_filename>' % (sys.argv[0])
    else:
        if sys.argv[1] == 'set':
            save_file_in_s3(sys.argv[2])
        elif sys.argv[1] == 'get':
            get_file_from_s3(sys.argv[2])
        elif sys.argv[1] == 'list':
            list_backup_in_s3()
        elif sys.argv[1] == 'delete':
            delete_all_backups()
        else:
            print 'Usage: %s <get/set/list/delete> <backup_filename>' % (sys.argv[0])

但是,请继续获取此错误:

Traceback (most recent call last):
  File "aws_s3.py", line 42, in <module>
    save_file_in_s3(sys.argv[2])
  File "aws_s3.py", line 13, in save_file_in_s3
    k.set_contents_from_filename(filename)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1362, in set_contents_from_filename
    encrypt_key=encrypt_key)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1293, in set_contents_from_file
    chunked_transfer=chunked_transfer, size=size)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 750, in send_file
    chunked_transfer=chunked_transfer, size=size)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 951, in _send_file_internal
    query_args=query_args
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 664, in make_request
    retry_handler=retry_handler
  File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1071, in make_request
    retry_handler=retry_handler)
  File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1030, in _mexe
    raise ex
socket.error: [Errno 104] Connection reset by peer

我做了一些研究,发现它存在某种错误。boto如何进一步进行此操作?

尼希尔·帕尔玛(Nikhil Parmar)

由于我没有获得任何更新以使其工作,因此s3cmd在bash脚本中使用该更新但是我仍然必须测试它是否大于1GB。

这是更新的代码-

#!/bin/sh

MONGODB_SHELL='/usr/bin/mongo'

DUMP_UTILITY='/usr/bin/mongodump'
DB_NAME='amicus'

date_now=`date +%Y_%m_%d_%H_%M_%S`
dir_name='db_backup_'${date_now}
file_name='db_backup_'${date_now}'.bz2'

log() {
    echo $1
}

do_cleanup(){
    rm -rf db_backup_2010* 
    log 'cleaning up....'
}

do_backup(){
    log 'snapshotting the db and creating archive' && \

    ${DUMP_UTILITY} -d ${DB_NAME} -o ${dir_name} && tar -jcf $file_name ${dir_name}

    log 'data backd up and created snapshot'
}

save_in_s3(){
    log 'saving the backup archive in amazon S3' && \
    python aws_s3.py set ${file_name} && \
    s3cmd put ${file_name} s3://YOURBUCKETNAME
    log 'data backup saved in amazon s3'
}

do_backup && save_in_s3 && do_cleanup

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Speed,将文件从S3传输到Ec2?

来自分类Dev

每当我向s3添加新文件时,如何将文件从s3传输到ec2实例?

来自分类Dev

使用Boto 3将文件从AWS S3传输到SFTP

来自分类Dev

使用Paramiko将文件从SFTP传输到S3

来自分类Dev

将文件从 S3 Bucket 传输到另一个保存文件夹结构 - python boto

来自分类Dev

Fineuploader:将大型文件传输到Amazon S3

来自分类Dev

应用程序关闭时将文件传输到 Amazon S3

来自分类Dev

使用可笑的内存量使用lambda将文件从URI直接流式传输到S3

来自分类Dev

使用AWS Pipeline从S3传输到RedShift时展平JSON文件

来自分类Dev

使用AWS PHP SDK将文件安全传输到S3

来自分类Dev

使用NodeJS + Express,aws-sdk将文件直接流式传输到s3

来自分类Dev

使用go将文件流传输到AWS S3

来自分类Dev

如何使用Knox将文件从NodeJS流传输到Amazon S3?

来自分类Dev

将Amazon Ec2与S3结合使用

来自分类Dev

尝试将S3存储桶安装到Ubuntu 14.04 EC2实例时出错

来自分类Dev

使用 AWS EC2 将大量文件放入 S3 存储桶

来自分类Dev

使用Boto从S3流式传输.gz文件时出现无限循环

来自分类Dev

使用生命周期存档规则时,AWS如何将S3对象传输到Glacier存档?

来自分类Dev

我应该将s3存储桶用于文件还是应该坚持使用ec2实例

来自分类Dev

使用S3DistCp从HDFS传输到S3时删除目录级别

来自分类Dev

尝试使用boto3将文件上传到S3时找不到文件

来自分类Dev

正在将文件流式传输到S3“错误:流意外终止”

来自分类Dev

将文件的FTP(CSV)自动传输到Amazon S3存储桶

来自分类Dev

正在将文件流式传输到S3“错误:流意外终止”

来自分类Dev

从Web服务器将文件传输到Amazon S3

来自分类Dev

用于将 FTP 文件从 Raspberry Pi 传输到 Amazon S3 的 Bash 脚本

来自分类Dev

将“Azure Blob 存储”文件 URL 流式传输到 Amazon S3 存储桶

来自分类Dev

使用mysql2pgsql将数据库从MySql传输到Postgres时出错

来自分类Dev

使用水槽将数据流传输到S3

Related 相关文章

  1. 1

    AWS Speed,将文件从S3传输到Ec2?

  2. 2

    每当我向s3添加新文件时,如何将文件从s3传输到ec2实例?

  3. 3

    使用Boto 3将文件从AWS S3传输到SFTP

  4. 4

    使用Paramiko将文件从SFTP传输到S3

  5. 5

    将文件从 S3 Bucket 传输到另一个保存文件夹结构 - python boto

  6. 6

    Fineuploader:将大型文件传输到Amazon S3

  7. 7

    应用程序关闭时将文件传输到 Amazon S3

  8. 8

    使用可笑的内存量使用lambda将文件从URI直接流式传输到S3

  9. 9

    使用AWS Pipeline从S3传输到RedShift时展平JSON文件

  10. 10

    使用AWS PHP SDK将文件安全传输到S3

  11. 11

    使用NodeJS + Express,aws-sdk将文件直接流式传输到s3

  12. 12

    使用go将文件流传输到AWS S3

  13. 13

    如何使用Knox将文件从NodeJS流传输到Amazon S3?

  14. 14

    将Amazon Ec2与S3结合使用

  15. 15

    尝试将S3存储桶安装到Ubuntu 14.04 EC2实例时出错

  16. 16

    使用 AWS EC2 将大量文件放入 S3 存储桶

  17. 17

    使用Boto从S3流式传输.gz文件时出现无限循环

  18. 18

    使用生命周期存档规则时,AWS如何将S3对象传输到Glacier存档?

  19. 19

    我应该将s3存储桶用于文件还是应该坚持使用ec2实例

  20. 20

    使用S3DistCp从HDFS传输到S3时删除目录级别

  21. 21

    尝试使用boto3将文件上传到S3时找不到文件

  22. 22

    正在将文件流式传输到S3“错误:流意外终止”

  23. 23

    将文件的FTP(CSV)自动传输到Amazon S3存储桶

  24. 24

    正在将文件流式传输到S3“错误:流意外终止”

  25. 25

    从Web服务器将文件传输到Amazon S3

  26. 26

    用于将 FTP 文件从 Raspberry Pi 传输到 Amazon S3 的 Bash 脚本

  27. 27

    将“Azure Blob 存储”文件 URL 流式传输到 Amazon S3 存储桶

  28. 28

    使用mysql2pgsql将数据库从MySql传输到Postgres时出错

  29. 29

    使用水槽将数据流传输到S3

热门标签

归档