2013-04-09 41 views
41

Tôi đang sử dụng phiên bản AWS ec2. Trong trường hợp này, tôi tạo ra một số tập tin. Các hoạt động này được thực hiện bởi dữ liệu người dùng.Cách chuyển tệp giữa AWS s3 và AWS ec2

Bây giờ tôi muốn lưu trữ các tệp đó trên s3 bằng cách viết mã trong chính dữ liệu người dùng.

  • Vậy làm cách nào để lưu trữ các tệp đó trên s3?
  • Có bất kỳ hướng dẫn nào về nó?
+0

Bạn có may mắn với điều này không? –

Trả lời

8

Tôi đang sử dụng s3cmd để lưu trữ tệp sao lưu cơ sở dữ liệu đã xuất hàng đêm từ ví dụ ec2 của mình. Sau khi cấu hình của s3cmd, mà bạn có thể đọc về tại trang web của họ, sau đó bạn có thể chạy một lệnh như:

s3cmd put ./myfile s3://mybucket

+0

Nó hoạt động nhưng tôi không thể sử dụng s3cmd trong mã PHP của tôi. – Asghar

+0

Bạn đã xem câu trả lời của tôi chưa? –

31

Có một số cách để gửi các tập tin để S3. Tôi đã liệt kê chúng bên dưới cùng với cài đặt và tài liệu có liên quan.

Một ví dụ về sự im PHP plementation:

<?php 

    // Simple PUT: 
    if (S3::putObject(S3::inputFile($file), $bucket, $uri, S3::ACL_PRIVATE)) { 
     echo "File uploaded."; 
    } else { 
     echo "Failed to upload file."; 
    } 

?> 

Một ví dụ về s3cmd:

s3cmd put my.file s3://bucket-url/my.file 

Sửa

Một lựa chọn khác đáng đề cập là AWS CLI http://aws.amazon.com/cli/ này được phổ biến rộng rãi, ví dụ nó đã được bao gồm trên AmazonLinux và có thể được tải xuống thông qua Python (được cài đặt trên nhiều hệ thống bao gồm cả linux và windows).

http://docs.aws.amazon.com/cli/latest/reference/s3/index.html

lệnh có sẵn, cp ls mb mv rb rm đồng bộ website

http://docs.aws.amazon.com/cli/latest/reference/s3api/index.html để tương tác với S3

+0

Bạn ans tuyệt vời .. chỉ cần tìm kiếm điều này :) –

4

Sử dụng s3cmd cho rằng:

s3cmd get s3://AWS_S3_Bucket/dir/file 

Xem ho w để cài đặt s3cmd here:

này làm việc cho tôi ...

9

Install s3cmd trọn gói như:

yum install s3cmd 

hoặc

sudo apt-get install s3cmd 

tùy thuộc vào hệ điều hành của bạn. Sau đó sao chép dữ liệu bằng cách này:

s3cmd get s3://tecadmin/file.txt 

cũng ls có thể liệt kê các tệp.

Để biết thêm detils thấy this

50

Sử dụng gần đây nhất AWS CLI (http://aws.amazon.com/cli/) bạn có thể sử dụng các lệnh sau đây để sao chép tập tin từ EC2 Instance của bạn hoặc thậm chí bạn máy tính cục bộ để lưu trữ S3.

aws s3 cp myfolder s3://mybucket/myfolder --recursive 

Sau đó bạn sẽ nhận được một cái gì đó như:

upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt 
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt 

Nếu đây là sử dụng đầu tiên của công cụ aws CLI sau đó bạn sẽ cần phải chạy:

aws configure

Điều này sẽ yêu cầu bạn nhập khóa truy cập & bí mật cùng với việc chỉ định khu vực mặc định.

+1

aws cli là tốt hơn nhiều so với s3cmd. –

+0

@ajtrichards Có cách nào để cung cấp khóa truy cập và bí mật bằng cách sử dụng đối số dòng lệnh không? – EmptyData

+0

@EmptyData bạn có thể sử dụng cờ '--profile PROFILE_NAME' để chỉ ra tập hợp thông tin đăng nhập nào cần sử dụng? Nếu bạn đã thiết lập nhiều cấu hình AWS trên dòng lệnh của bạn. – ajtrichards

3

Mọi nỗ lực gắn kết s3 dưới dạng hệ thống tệp giả đều có vấn đề. Đó là một cửa hàng đối tượng, không phải là một thiết bị khối. Nếu bạn phải gắn kết nó vì bạn có mã kế thừa phải có đường dẫn tệp cục bộ, hãy thử goofys. Nó nhanh hơn khoảng 50 lần so với s3fs. https://github.com/kahing/goofys

s3cmd hơi dài trong răng vào những ngày này. AWS cli là một lựa chọn tốt hơn những ngày này. Cú pháp là một chút ít thuận tiện, nhưng nó là một công cụ ít hơn bạn cần phải giữ xung quanh.

Nếu bạn có thể truy cập vào quyền truy cập http. Nó sẽ làm cho bạn cuộc sống dễ dàng hơn trong thời gian dài.

Các vấn đề liên quan