Tải xuống toàn bộ nhóm S3?


705

Tôi nhận thấy rằng dường như không có tùy chọn tải xuống toàn bộ nhóm S3 từ Bảng điều khiển quản lý AWS.

Có cách nào dễ dàng để lấy mọi thứ trong một trong các thùng của tôi không? Tôi đã suy nghĩ về việc làm cho thư mục gốc được công khai, sử dụng wgetđể lấy tất cả, và sau đó đặt nó ở chế độ riêng tư nhưng tôi không biết liệu có cách nào dễ dàng hơn không.


4
Như nhiều người ở đây đã nói, aws s3 synclà tốt nhất. Nhưng không ai chỉ ra một lựa chọn mạnh mẽ : dryrun. Tùy chọn này cho phép bạn xem những gì sẽ được tải xuống / tải lên từ / đến s3 khi bạn đang sử dụng sync. Điều này thực sự hữu ích khi bạn không muốn ghi đè nội dung trong địa phương hoặc trong nhóm s3. Đây là cách sử dụng: aws s3 sync <source> <destination> --dryrunTôi đã sử dụng nó mọi lúc trước khi đẩy nội dung mới vào một thùng để không tải lên các thay đổi không mong muốn.
Perimosh

Câu trả lời:


1334

AWS CLI

Xem " Tham khảo lệnh AWS CLI " để biết thêm thông tin.

AWS gần đây đã phát hành Công cụ dòng lệnh của họ, hoạt động giống như boto và có thể được cài đặt bằng cách sử dụng

sudo easy_install awscli

hoặc là

sudo pip install awscli

Sau khi cài đặt, bạn có thể chạy một cách đơn giản:

aws s3 sync s3://<source_bucket> <local_destination>

Ví dụ:

aws s3 sync s3://mybucket .

sẽ tải tất cả các đối tượng vào mybucketthư mục hiện tại.

Và sẽ xuất ra:

download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt

Điều này sẽ tải xuống tất cả các tệp của bạn bằng cách sử dụng đồng bộ một chiều. Nó sẽ không xóa bất kỳ tệp hiện có trong thư mục hiện tại của bạn trừ khi bạn chỉ định và nó sẽ không thay đổi hoặc xóa bất kỳ tệp nào trên S3. --delete

Bạn cũng có thể thực hiện xô S3 sang xô S3 hoặc đồng bộ hóa nhóm cục bộ sang S3.

Kiểm tra các tài liệu và các ví dụ khác .

Trong khi ví dụ trên là cách tải xuống một thùng đầy đủ, bạn cũng có thể tải xuống một thư mục theo cách đệ quy bằng cách thực hiện

aws s3 cp s3://BUCKETNAME/PATH/TO/FOLDER LocalFolderName --recursive

Điều này sẽ hướng dẫn CLI tải xuống tất cả các tệp và khóa thư mục theo cách đệ quy trong PATH/TO/FOLDERthư mục trong BUCKETNAMEnhóm.


223
Đầu tiên chạy aws configurevà thêm của bạn access keysecret access keycó thể được tìm thấy ở đây .
Erwin Rooijakkers

12
Tới đây để cài đặt windows aws.amazon.com/cli . Nó chọn id khóa truy cập từ biến môi trường "AWS_ACCESS_KEY_ID" và khóa bí mật của bạn từ "AWS_SECRET_ACCESS_KEY".
Matt Bond

7
Tôi đã thử s3cmdCyberduck, nhưng đối với tôi awsclilà cách nhanh nhất để tải xuống ~ 70.000 tệp từ nhóm của tôi.
Arjen

11
Xin lưu ý rằng trong khi câu hỏi chỉ hỏi về tải xuống, tôi tin rằng lệnh này sẽ thực hiện đồng bộ hóa 2 chiều giữa thư mục của bạn và S3. Nếu bạn không cố tải lên bất cứ thứ gì, hãy đảm bảo thư mục hiện tại trống.
Jesse Crossen

15
@JesseCrossen aws s3 syncLệnh đó sẽ không tải lên bất cứ thứ gì, nhưng nó sẽ xóa các tệp cục bộ nếu chúng không tồn tại trên S3. Xem tài liệu .
Flimm

168

Bạn có thể sử dụng s3cmdđể tải xuống xô của mình:

s3cmd --configure
s3cmd sync s3://bucketnamehere/folder /destination/folder

Có một công cụ khác mà bạn có thể sử dụng được gọi là rclone. Đây là một mẫu mã trong tài liệu Rclone:

rclone sync /home/local/directory remote:bucket

5
Điều này khá chậm. Đặc biệt là nếu bạn cố gắng sử dụng nó tăng dần. Có một giải pháp đa luồng để nó có thể bão hòa băng thông?
Peter Lada

các giải pháp bên dưới này tốt hơn, chuẩn hơn và mở ra nhiều nền tảng hơn
abc123

Điều này không hoạt động đối với người yêu cầu trả xô (xem arxiv.org/help/bulk_data_s3 ) :-(
Martin Thoma

Làm thế nào tôi có thể sử dụng giải pháp của bạn nếu tôi phải thực hiện khớp mẫu để tải xuống? Câu hỏi của tôi: stackoverflow.com/questions/25086722/ Từ
Shrikant Kakani

84

Tôi đã sử dụng một vài phương pháp khác nhau để sao chép dữ liệu Amazon S3 sang máy cục bộ, bao gồm s3cmd, và cho đến nay, dễ nhất là Cyberduck .

Tất cả những gì bạn cần làm là nhập thông tin đăng nhập Amazon của bạn và sử dụng giao diện đơn giản để tải xuống, tải lên, đồng bộ hóa bất kỳ nhóm, thư mục hoặc tệp nào của bạn.

Ảnh chụp màn hình


Hoạt động tuyệt vời! Có sẵn cho Windows và Mac (GPL).
craastad

Cyberduck cũng giúp bạn dễ dàng tải xuống các tệp công khai ẩn danh - s3cmd dường như yêu cầu thông tin đăng nhập
chrishiestand

Hoạt động tuyệt vời với Transmit quá.
Undistraction 7/215

CLI đã cho tôi một lỗi khi tôi đang cố gắng cứu thùng của mình, điều này đã hoạt động hoàn hảo!
Lazar Kukolj

Ôi thật bất ngờ. Tôi đã sử dụng cyberduck trước đó cho FTP, nhưng chưa bao giờ mong đợi nó có kết nối S3. Cảm ơn cho một gợi ý tuyệt vời!
jskierbi

51

Bạn có nhiều lựa chọn để làm điều đó, nhưng lựa chọn tốt nhất là sử dụng AWS CLI.

Đây là một hướng dẫn:

  1. Tải xuống và cài đặt AWS CLI trong máy của bạn:

  2. Cấu hình AWS CLI:

    nhập mô tả hình ảnh ở đây

    Đảm bảo bạn nhập quyền truy cập hợp lệ và khóa bí mật mà bạn đã nhận được khi tạo tài khoản.

  3. Đồng bộ hóa thùng S3 bằng cách sử dụng:

    aws s3 sync s3://yourbucket /local/path
    

    Trong lệnh trên, thay thế các trường sau:

    • yourbucket >> thùng S3 của bạn mà bạn muốn tải xuống.
    • /local/path >> đường dẫn trong hệ thống cục bộ của bạn, nơi bạn muốn tải xuống tất cả các tệp.

Tôi đã sử dụng cái này thay vì cyberduck, bởi vì cyberduck cần "chuẩn bị" các tập tin trước khi nó bắt đầu tải xuống. Đối với số lượng lớn các tệp dường như mất nhiều thời gian và tôi không thể tìm thấy thông tin về việc "chuẩn bị" thực sự làm gì. CLI bắt đầu tải về ngay lập tức
Tashows

hãy chắc chắn rằng bạn có s3://tiền tố đó trong tên xô !!! Với aws s3 lsbạn không cần s3://tiền tố đó nhưng bạn cần cplệnh.
cjmling

43

Để tải xuống bằng AWS S3 CLI:

aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive

Để tải xuống bằng mã, sử dụng SDK AWS.

Để tải xuống bằng GUI, hãy sử dụng Cyberduck.


1
Làm thế nào để bỏ qua một số tập tin hoặc thư mục?
Nabin

1
@Nabin bạn có thể sử dụng --include & --exclude với ký tự đại diện để loại trừ một số tệp hoặc thư mục, như thế này: aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
DarkCenobyte

21

Đối với Windows, Trình duyệt S3 là cách dễ nhất mà tôi đã tìm thấy. Đây là phần mềm tuyệt vời và miễn phí cho sử dụng phi thương mại.


3
Tôi vừa thử tùy chọn "Tải xuống tất cả tệp vào ..." (mà tôi cho là tương đương với "tải xuống toàn bộ s3" và nó nói rằng tôi cần phiên bản Pro.
Jack Ukleja

2
Cập nhật: Nhưng tôi đã có thể tải xuống toàn bộ thư mục trong nhóm đủ cho nhu cầu của mình ...
Jack Ukleja

vâng, phiên bản miễn phí khá hạn chế, bạn có thể chọn tất cả và tải xuống, nhưng chỉ giới hạn ở 2 lần chuyển đồng thời
Hayden Thring

Đã tìm kiếm một phiên bản windows đơn giản sau khi gặp một số lỗi hỗ trợ python3 trên Ubuntu 17.1 và s3cmd, điều này đã hoạt động tốt.
edencorbin

21

Nếu bạn sử dụng Visual Studio, hãy tải xuống " Bộ công cụ AWS cho Visual Studio ".

Sau khi cài đặt, hãy truy cập Visual Studio - AWS Explorer - S3 - Nhóm của bạn - Nhấp đúp chuột

Trong cửa sổ, bạn sẽ có thể chọn tất cả các tập tin. Nhấp chuột phải và tải tập tin.


13

Câu trả lời của @Layke là tốt, nhưng nếu bạn có rất nhiều dữ liệu và không muốn đợi mãi, bạn nên đọc " Cấu hình AWS CLI S3 ".

Các lệnh sau sẽ yêu cầu AWS CLI sử dụng 1.000 luồng để thực thi công việc (mỗi tệp nhỏ hoặc một phần của bản sao nhiều phần) và xem trước 100.000 công việc:

aws configure set default.s3.max_concurrent_requests 1000
aws configure set default.s3.max_queue_size 100000

Sau khi chạy chúng, bạn có thể sử dụng synclệnh đơn giản :

aws s3 sync s3://source-bucket/source-path s3://destination-bucket/destination-path

hoặc là

aws s3 sync s3://source-bucket/source-path c:\my\local\data\path

Trên hệ thống có lõi CPU 4 và RAM 16 GB, đối với các trường hợp như của tôi (tệp 3-50 GB), tốc độ đồng bộ / sao chép đã tăng từ khoảng 9,5MiB / s lên 700 + MiB / s, tốc độ tăng 70 lần so với cấu hình mặc định.


1
đây là câu trả lời thực sự chỉ cần thử nghiệm, từ ec2, nó chuyển khoảng 2,3 GB / phút. không có các tùy chọn đồng thời khoảng 1GB / phút. phao cứu sinh.
Karsten

12

Sử dụng lệnh này với AWS CLI :

aws s3 cp s3://bucketname . --recursive

12

Một tùy chọn khác có thể giúp một số người dùng OS X là Transmit.

Đây là một chương trình FTP cũng cho phép bạn kết nối với các tệp S3 của mình. Và, nó có một tùy chọn để gắn kết bất kỳ bộ lưu trữ FTP hoặc S3 nào dưới dạng thư mục trong Finder, nhưng nó chỉ trong một thời gian giới hạn.


9

Tôi đã thực hiện một chút phát triển cho S3 và tôi chưa tìm thấy cách đơn giản nào để tải xuống toàn bộ nhóm.

Nếu bạn muốn viết mã bằng Java, jets3t lib rất dễ sử dụng để tạo danh sách các nhóm và lặp qua danh sách đó để tải xuống.

Trước tiên, hãy lấy một khóa riêng tư được thiết lập từ lãnh sự quản lý AWS để bạn có thể tạo một đối tượng S3service:

AWSCredentials awsCredentials = new AWSCredentials(YourAccessKey, YourAwsSecretKey);
s3Service = new RestS3Service(awsCredentials);

Sau đó, lấy một mảng các đối tượng xô của bạn:

S3Object[] objects = s3Service.listObjects(YourBucketNameString);

Cuối cùng, lặp lại qua mảng đó để tải xuống từng đối tượng một:

S3Object obj = s3Service.getObject(bucket, fileName);
            file = obj.getDataInputStream();

Tôi đặt mã kết nối trong một singleton singleton. Cú pháp thử / bắt cần thiết đã bị bỏ qua vì những lý do rõ ràng.

Nếu bạn muốn viết mã bằng Python, bạn có thể sử dụng Boto thay thế.

Sau khi tìm kiếm xung quanh BuckExplorer, " Tải xuống toàn bộ nhóm " có thể làm những gì bạn muốn.


Trừ khi bạn cần một giải pháp Java, hãy sử dụng câu trả lời aws cli ở trên.
jeremyjjbrown

tạo một thư mục mới và tương tự
Jisson

7

API sdk AWS sẽ chỉ có tùy chọn tốt nhất để tải lên toàn bộ thư mục và repo lên s3 và tải toàn bộ nhóm s3 về cục bộ.

Để tải toàn bộ thư mục lên s3

aws s3 sync . s3://BucketName

để tải xuống toàn bộ thùng s3 cục bộ

aws s3 sync s3://BucketName . 

bạn cũng có thể gán đường dẫn Giống như BuckName / Path cho thư mục cụ thể trong s3 để tải xuống


6

Bạn có thể làm điều này với https://github.com/minio/mc :

mc cp -r https://s3-us-west-2.amazonaws.com/bucketName/ localdir

mc cũng hỗ trợ các phiên, tải xuống có thể tiếp tục, tải lên và nhiều hơn nữa. mchỗ trợ các hệ điều hành Linux, OS X và Windows. Được viết bằng Golang và phát hành theo Phiên bản Apache 2.0.


5

Nếu bạn sử dụng Firefox với S3Fox, điều đó cho phép bạn chọn tất cả các tệp (chọn ca trước và cuối cùng) và nhấp chuột phải và tải xuống tất cả ... Tôi đã thực hiện với hơn 500 tệp có vấn đề.


Điều này không hoạt động cho các thư mục con trong một nhóm, ngay cả khi "thư mục giả" được tạo trong bảng điều khiển AWS. (Khi viết bình luận này)
Wesley

Xác nhận không hoạt động, tôi có khoảng 12k khóa cấp cao nhất = thư mục con), S3Fox thậm chí không khởi động. Cũng nhấn mạnh vào sự cho phép để liệt kê tất cả các thùng!
Peter Lada


3

Nếu bạn chỉ có các tệp ở đó (không có thư mục con), một giải pháp nhanh là chọn tất cả các tệp ( clicktrên đầu tiên, Shift+clickcuối cùng) và nhấn Enterhoặc right clickvà chọn Open. Đối với hầu hết các tệp dữ liệu, điều này sẽ tải chúng thẳng về máy tính của bạn.


3

Để thêm tùy chọn GUI khác, chúng tôi sử dụng chức năng S3 của WinSCP . Rất dễ dàng để kết nối, chỉ yêu cầu khóa truy cập và khóa bí mật của bạn trong giao diện người dùng. Sau đó, bạn có thể duyệt và tải xuống bất kỳ tệp nào bạn yêu cầu từ bất kỳ nhóm có thể truy cập nào, bao gồm tải xuống đệ quy các thư mục lồng nhau.

Vì nó có thể là một thách thức để xóa phần mềm mới thông qua bảo mật và WinSCP khá phổ biến, nên có thể thực sự có ích khi chỉ sử dụng nó thay vì cố gắng cài đặt một tiện ích chuyên dụng hơn.


1
  1. Người dùng Windows cần tải xuống S3EXPLORER từ liên kết này cũng có hướng dẫn cài đặt: - http://s3browser.com/doad.aspx

  2. Sau đó cung cấp cho bạn thông tin xác thực AWS như secretkey, accesskey và vùng cho s3explorer, liên kết này chứa hướng dẫn cấu hình cho s3explorer: Sao chép Paste Link trong brower: s3browser.com/s3browser-first-run.aspx

  3. Bây giờ tất cả các thùng s3 của bạn sẽ hiển thị trên bảng điều khiển bên trái của s3explorer.

  4. Chỉ cần chọn thùng và nhấp vào menu Buckets ở góc trên cùng bên trái, sau đó chọn Tải xuống tất cả các tệp để tùy chọn từ menu. Dưới đây là ảnh chụp màn hình cho cùng:

Màn hình chọn thùng

  1. Sau đó duyệt một thư mục để tải xuống xô tại một địa điểm cụ thể

  2. Nhấp vào OK và tải xuống của bạn sẽ bắt đầu.


1

đồng bộ aws là giải pháp hoàn hảo. Nó không làm theo hai cách .. nó là một cách từ nguồn đến đích. Ngoài ra, nếu bạn có nhiều mục trong nhóm, bạn nên tạo điểm cuối s3 trước để quá trình tải xuống diễn ra nhanh hơn (vì tải xuống không xảy ra qua internet mà qua mạng nội bộ) và không tính phí


1

Dưới đây là một số nội dung để tải xuống tất cả các nhóm, liệt kê chúng, liệt kê nội dung của chúng.

    //connection string
    private static void dBConnection() {
    app.setAwsCredentials(CONST.getAccessKey(), CONST.getSecretKey());
    conn = new AmazonS3Client(app.getAwsCredentials());
    app.setListOfBuckets(conn.listBuckets());
    System.out.println(CONST.getConnectionSuccessfullMessage());
    }

    private static void downloadBucket() {

    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            app.setBucketKey(objectSummary.getKey());
            app.setBucketName(objectSummary.getBucketName());
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                //DOWNLOAD
                try 
                {
                    s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
                    s3Client.getObject(
                            new GetObjectRequest(app.getBucketName(),app.getBucketKey()),
                            new File(app.getDownloadedBucket())
                            );
                } catch (IOException e) {
                    e.printStackTrace();
                }

                do
                {
                     if(app.getBackUpExist() == true){
                        System.out.println("Converting back up file");
                        app.setCurrentPacsId(objectSummary.getKey());
                        passIn = app.getDataBaseFile();
                        CONVERT= new DataConversion(passIn);
                        System.out.println(CONST.getFileDownloadedMessage());
                    }
                }
                while(app.getObjectExist()==true);

                if(app.getObjectExist()== false)
                {
                    app.setNoObjectFound(true);
                }
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
}

/ ---------------------------- Phương thức mở rộng ------------------- ------------------ /

//Unzip bucket after download 
public static void unzipBucket() throws IOException {
    unzip = new UnZipBuckets();
    unzip.unZipIt(app.getDownloadedBucket());
    System.out.println(CONST.getFileUnzippedMessage());
}

//list all S3 buckets
public static void listAllBuckets(){
    for (Bucket bucket : app.getListOfBuckets()) {
        String bucketName = bucket.getName();
        System.out.println(bucketName + "\t" + StringUtils.fromDate(bucket.getCreationDate()));
    }
}

//Get the contents from the auto back up bucket
public static void listAllBucketContents(){     
    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                System.out.println(objectSummary.getKey() + "\t" + objectSummary.getSize() + "\t" + StringUtils.fromDate(objectSummary.getLastModified()));
                app.setBackUpCount(app.getBackUpCount() + 1);   
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
    System.out.println("There are a total of : " + app.getBackUpCount() + " buckets.");
}

}


1

Bạn có thể đơn giản lấy nó bằng lệnh s3cmd :

s3cmd get --recursive --continue s3://test-bucket local-directory/

1

Như Neel Bhaat đã giải thích trong blog này , có nhiều công cụ khác nhau có thể được sử dụng cho mục đích này. Một số được cung cấp AWS, trong đó hầu hết là các công cụ của bên thứ ba. Tất cả các công cụ này yêu cầu bạn lưu khóa tài khoản AWS và bí mật trong chính công cụ đó. Hãy thận trọng khi sử dụng các công cụ của bên thứ ba, vì thông tin đăng nhập bạn có thể khiến bạn phải trả giá, toàn bộ giá trị của bạn và khiến bạn chết.

Do đó, tôi luôn khuyên bạn nên sử dụng AWS CLI cho mục đích này. Bạn chỉ có thể cài đặt này từ liên kết này . Tiếp theo, chạy lệnh sau và lưu khóa, giá trị bí mật của bạn trong AWS CLI.

aws configure

Và sử dụng lệnh sau để đồng bộ hóa Nhóm AWS S3 của bạn với máy cục bộ. (Máy cục bộ nên cài đặt AWS CLI)

aws s3 sync <source> <destination>

Ví dụ:

1) Dành cho AWS S3 vào Bộ nhớ cục bộ

aws s3 sync <S3Uri> <LocalPath>

2) Từ Bộ nhớ cục bộ đến AWS S3

aws s3 sync <LocalPath> <S3Uri>

3) Từ xô AWS s3 sang xô khác

aws s3 sync <S3Uri> <S3Uri> 

Ví dụ 3, tôi có thể trỏ đến thư mục Nhóm xô đến thư mục nhóm khác không? Trên thực tế, tôi muốn đồng bộ một thư mục xô sang một thư mục xô khác.
lukai

@lukai vâng. Đây là những gì tôi đã đưa ra trong Ví dụ 3. Bạn chỉ cần có các URI xô s3 của nguồn và đích
Keet Sugathadasa

1

Nếu bạn chỉ muốn tải xuống nhóm từ AWS, trước tiên hãy cài đặt AWS CLI trong máy của bạn. Trong terminal, thay đổi thư mục đến nơi bạn muốn tải tập tin và chạy lệnh này.

aws s3 sync s3://bucket-name .

Nếu bạn cũng muốn đồng bộ hóa cả thư mục cục bộ và s3 (trong trường hợp bạn đã thêm một số tệp trong thư mục cục bộ), hãy chạy lệnh này:

aws s3 sync . s3://bucket-name

1

AWS CLI là tùy chọn tốt nhất để tải xuống toàn bộ nhóm S3 cục bộ.

  1. Cài đặt AWS CLI.

  2. Định cấu hình AWS CLI để sử dụng thông tin xác thực bảo mật mặc định và Vùng AWS mặc định.

  3. Để tải xuống toàn bộ nhóm S3, sử dụng lệnh

    aws s3 sync s3: // yourbucketname localpath

Tham khảo để sử dụng AWS cli cho các dịch vụ AWS khác nhau: https://docs.aws.amazon.com/cli/latest/reference/


1

Bạn có thể sử dụng lệnh AWS cli này để tải xuống toàn bộ nội dung nhóm S3 vào thư mục cục bộ

aws s3 sync s3://your-bucket-name "Local Folder Path"

Nếu bạn thấy lỗi như thế này

fatal error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

--no-verify-ssl (boolean)

Theo mặc định, AWS CLI sử dụng SSL khi giao tiếp với các dịch vụ AWS. Đối với mỗi kết nối SSL, AWS CLI sẽ xác minh chứng chỉ SSL. Tùy chọn này ghi đè hành vi mặc định của việc xác minh chứng chỉ SSL. tài liệu tham khảo

Sử dụng thẻ này với lệnh --no-verify-ssl

aws s3 sync s3://your-bucket-name "Local Folder Path" --no-verify-ssl

Sử dụng s3 syncđược bảo hiểm trên nhiều lần rồi. + Đề xuất sử dụng --no-verify-sslmà không giải thích hậu quả bảo mật của nó là một tội ác.
Martin Prikryl

Cảm ơn thông tin về bảo mật. Tôi đã đối mặt với vấn đề này và giải quyết nó bằng cách sử dụng tài liệu tham khảo này docs.aws.amazon.com/cli/latest/reference
Dimuthu

1

Nếu thùng khá lớn, có một lệnh được gọi là s4cmdtạo các kết nối song song và cải thiện thời gian tải xuống:

Để cài đặt nó trên Debian như

apt install s4cmd

Nếu bạn có pip:

pip install s4cmd

Nó sẽ đọc ~/.s3cfgtệp nếu có (nếu không cài đặt s3cmdvà chạy s3cmd --configure) hoặc bạn có thể chỉ định --access-key=ACCESS_KEY --secret-key=SECRET_KEYtrên lệnh.

Các cli tương tự như s3cmd. Trong trường hợp của bạn, a syncđược khuyến nghị vì bạn có thể hủy tải xuống và bắt đầu lại mà không cần phải tải lại các tệp.

s4cmd [--access-key=ACCESS_KEY --secret-key=SECRET_KEY] sync s3://<your-bucket> /some/local/dir

Hãy cẩn thận nếu bạn tải xuống nhiều dữ liệu (> 1TB) điều này có thể ảnh hưởng đến hóa đơn của bạn, trước tiên hãy tính toán đó sẽ là chi phí


0

Như @layke đã nói, cách tốt nhất để tải xuống tệp từ S3 là một cách an toàn và bảo mật. Nhưng trong một số trường hợp, mọi người cần sử dụng wget để tải xuống tệp và đây là giải pháp

aws s3 presign s3://<your_bucket_name/>

Điều này sẽ được đặt trước sẽ giúp bạn có URL công khai tạm thời mà bạn có thể sử dụng để tải xuống nội dung từ S3 bằng presign_url, trong trường hợp của bạn bằng cách sử dụng wget hoặc bất kỳ ứng dụng khách tải xuống nào khác.


0

Hãy thử lệnh này:

aws s3 sync yourBucketnameDirectory yourLocalDirectory

Ví dụ: nếu tên nhóm của bạn là myBucketvà thư mục cục bộ c:\localthì:

aws s3 sync s3://myBucket c:\local

Để biết thêm thông tin về awscli, hãy kiểm tra cài đặt aws cli này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.