Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 o为每个存储桶附上正确的保险单_Amazon S3_Copy_Amazon Web Services - Fatal编程技术网

Amazon s3 o为每个存储桶附上正确的保险单

Amazon s3 o为每个存储桶附上正确的保险单,amazon-s3,copy,amazon-web-services,Amazon S3,Copy,Amazon Web Services,在此之后,使用此命令从一个bucket复制到另一个bucket 步骤2和步骤3的详细信息在此链接中给出: 您可以编写一个Java应用程序-甚至可能是一个使用AWS Java API复制对象的GUI SWING应用程序,请参见- 添加,因为这里还没有提到它。这是我目前正在尝试的方法,因为我有大约100万个对象需要移动到一个新帐户,而cp和sync对我来说不起作用,因为某些令牌过期了,而且我无法确定它是什么令牌,由于我的通用访问令牌工作正常。从2020年起,如果您使用的是s3cmd,您可以使用以下

在此之后,使用此命令从一个bucket复制到另一个bucket

步骤2步骤3的详细信息在此链接中给出:


您可以编写一个Java应用程序-甚至可能是一个使用AWS Java API复制对象的GUI SWING应用程序,请参见-


添加,因为这里还没有提到它。这是我目前正在尝试的方法,因为我有大约100万个对象需要移动到一个新帐户,而cp和sync对我来说不起作用,因为某些令牌过期了,而且我无法确定它是什么令牌,由于我的通用访问令牌工作正常。

从2020年起,如果您使用的是s3cmd,您可以使用以下命令将文件夹从bucket1复制到bucket2

s3cmd cp --recursive s3://bucket1/folder_name/ s3://bucket2/folder_name/

--recursive
是递归复制文件夹中所有内容所必需的,还请注意,您必须在文件夹名称后指定“/”,否则它将失败。

感谢您演示如何跨服务器复制。我正在尝试从美国服务器复制到新加坡服务器。@Arcolye现在AWS新加坡的延迟情况如何?一年前,它很慢而且不稳定。我对s3s3mirror有很好的体验。我能够在m1.small的EC2节点上设置它,并在大约2小时内复制150万个对象。由于我不熟悉Maven和Java,安装有点困难,但在Ubuntu上只需要几个apt-get命令就可以安装所有东西。最后一点注意:如果(像我一样)您担心在一个大的、重要的s3存储桶上运行一个未知的脚本,请创建一个特殊的用户,该用户对来自存储桶的副本具有只读访问权限,并使用这些凭据。意外删除的可能性为零。从EC2运行它,在大约5秒内复制了80MB。这正是我所需要的,因为aws sdk gem没有一次复制或同步整个存储桶的功能。谢谢它抛出以下错误
调用ListObjects操作时发生的客户端错误(PermanentRedirect):必须使用指定的端点寻址您尝试访问的存储桶。请将所有未来请求发送到此终结点。
@GiovanniBitliner您使用的bucket名称不正确。您可能使用了错误的前缀,或者使用了引用bucket的旧方法。请在管理控制台中准确检查您的bucket名称。注意,如果这是您第一次使用cli工具,则需要运行“aws配置”并输入您的凭据!他指的是网络界面。和大多数人不同的是,我可以在iPad上实现这一点。这会在子文件夹中随机删除嵌套对象——3年后,AWS仍然无法修复这样一个基本的错误!是针对同一地区还是所有地区?亚马逊是否在任何地方记录了这些问题@RunLoop@dukedave我不知道,并没有再次测试,因为我采取了复制命令行,因为这是完美的工作。考虑增加您的并发请求计数<代码> AWS配置SET Debug。S3.Max的CONCURTRONTIN请求200 < /代码>查看此职位更多的细节和选项,这不是JavaScript,很抱歉(是的,我知道coffeescript,而且你仍然可以使用它,而不是javascript)什么是
hdfs
AWS.config(:access_key_id => '...', :secret_access_key => '...')
s3 = AWS::S3.new
s3.buckets['bucket-name'].objects['source-key'].copy_to('target-key')
s3.buckets['bucket-name'].objects['source-key'].copy_to('target-key', :bucket_name => 'target-bucket')
#!/usr/bin/env python
from boto.s3.connection import S3Connection
import re
import datetime
import sys
import time

def main():
    s3_ID = sys.argv[1]
    s3_key = sys.argv[2]
    src_bucket_name = sys.argv[3]
    num_backup_buckets = sys.argv[4]
    connection = S3Connection(s3_ID, s3_key)
    delete_oldest_backup_buckets(connection, num_backup_buckets)
    backup(connection, src_bucket_name)

def delete_oldest_backup_buckets(connection, num_backup_buckets):
    """Deletes the oldest backup buckets such that only the newest NUM_BACKUP_BUCKETS - 1 buckets remain."""
    buckets = connection.get_all_buckets() # returns a list of bucket objects
    num_buckets = len(buckets)

    backup_bucket_names = []
    for bucket in buckets:
        if (re.search('backup-' + r'\d{4}-\d{2}-\d{2}' , bucket.name)):
            backup_bucket_names.append(bucket.name)

    backup_bucket_names.sort(key=lambda x: datetime.datetime.strptime(x[len('backup-'):17], '%Y-%m-%d').date())

    # The buckets are sorted latest to earliest, so we want to keep the last NUM_BACKUP_BUCKETS - 1
    delete = len(backup_bucket_names) - (int(num_backup_buckets) - 1)
    if delete <= 0:
        return

    for i in range(0, delete):
        print 'Deleting the backup bucket, ' + backup_bucket_names[i]
        connection.delete_bucket(backup_bucket_names[i])

def backup(connection, src_bucket_name):
    now = datetime.datetime.now()
    # the month and day must be zero-filled
    new_backup_bucket_name = 'backup-' + str('%02d' % now.year) + '-' + str('%02d' % now.month) + '-' + str(now.day);
    print "Creating new bucket " + new_backup_bucket_name
    new_backup_bucket = connection.create_bucket(new_backup_bucket_name)
    copy_bucket(src_bucket_name, new_backup_bucket_name, connection)


def copy_bucket(src_bucket_name, dst_bucket_name, connection, maximum_keys = 100):
    src_bucket = connection.get_bucket(src_bucket_name);
    dst_bucket = connection.get_bucket(dst_bucket_name);

    result_marker = ''
    while True:
        keys = src_bucket.get_all_keys(max_keys = maximum_keys, marker = result_marker)

        for k in keys:
            print 'Copying ' + k.key + ' from ' + src_bucket_name + ' to ' + dst_bucket_name

            t0 = time.clock()
            dst_bucket.copy_key(k.key, src_bucket_name, k.key)
            print time.clock() - t0, ' seconds'

        if len(keys) < maximum_keys:
            print 'Done backing up.'
            break

        result_marker = keys[maximum_keys - 1].key

if  __name__ =='__main__':main()
desc "Back up a file onto S3"
task :backup do
     S3ID = "AKIAJM3NRWC7STXWUWVQ"
     S3KEY = "0A5kuzV+E1dkaPjZxHQAezz1GlSddJd0iS5sNpry"
     SRCBUCKET = "primary-mzgd"
     NUM_BACKUP_BUCKETS = 2

     Dir.chdir("#{Rails.root}/lib/tasks")
     system "./do_backup.py #{S3ID} #{S3KEY} #{SRCBUCKET} #{NUM_BACKUP_BUCKETS}"
end
knoxCopy = require 'knox-copy'

client = knoxCopy.createClient
  key: '<api-key-here>'
  secret: '<secret-here>'
  bucket: 'backups'

client.copyBucket
  fromBucket: 'uploads'
  fromPrefix: '/nom-nom'
  toPrefix: "/upload_backups/#{new Date().toISOString()}"
  (err, count) ->
     console.log "Copied #{count} files"
$ aws s3 sync s3://mybucket-src s3://mybucket-target --exclude *.tmp
..
docker run -e AWS_ACCESS_KEY_ID=FOO -e AWS_SECRET_ACCESS_KEY=BAR pmoust/s3s3mirror [OPTIONS] source_bucket[/prefix] dest_bucket[/prefix]
docker run pmoust/s3s3mirror 
$ aws s3 cp s3://src_bucket/file  s3://dst_bucket/file --source-region eu-west-1 --region ap-northeast-1
$ aws s3api get-bucket-location --bucket my_bucket
hdfs dfs -cp -f "s3://AccessKey:SecurityKey@ExternalBucket/SourceFoldername/*.*" "s3://AccessKey:SecurityKey@ExternalBucket/TargetFoldername"
aws configure
aws s3 sync <source> <destination>
aws s3 sync <S3Uri> <LocalPath>
aws s3 sync <LocalPath> <S3Uri>
aws s3 sync <S3Uri> <S3Uri> 
**https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html**
aws s3 sync s3://sourcebucket s3://destinationbucket
s3cmd cp --recursive s3://bucket1/folder_name/ s3://bucket2/folder_name/