2013-04-09 80 views
41

我正在使用AWS ec2實例。在這個例子中,我產生了一些文件。這些操作由用戶數據完成。如何在AWS s3和AWS ec2之間傳輸文件

現在我想通過在用戶數據本身編寫代碼在s3上存儲這些文件。

  • 那麼如何將這些文件存儲在s3上?
  • 有任何教程嗎?
+0

你有沒有這個運氣? – 2014-01-24 07:55:21

回答

8

我使用s3cmd來存儲從我的ec2實例中每晚導出的數據庫備份文件。 s3cmd,你可以在他們的網站上讀到的配置之後,你就可以運行像這樣的命令:

s3cmd put ./myfile s3://mybucket

+0

它的工作原理,但我無法在我的PHP代碼中使用s3cmd。 – Asghar 2013-07-30 12:29:19

+0

你見過我的答案嗎? – 2013-11-21 11:22:30

31

有多種方式將文件發送到S3。我在下面列出了它們以及相關的安裝和文檔。

文檔中的PHP IM的例子plementation:

<?php 

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

?> 

s3cmd的例子:這是被廣泛使用,例如,它已經包含在AmazonLinux並能

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

編輯

另一種選擇值得一提的是AWS CLI http://aws.amazon.com/cli/ 可以通過Python下載(它安裝在許多系統上,包括linux和windows)。

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

可用的命令,CP LS MB MV RB RM同步網站

http://docs.aws.amazon.com/cli/latest/reference/s3api/index.html與S3

交互
+0

大ans的朋友..只是在尋找這個:) – 2015-06-23 06:12:05

4

使用s3cmd爲:

s3cmd get s3://AWS_S3_Bucket/dir/file 

見浩w至s3cmd here安裝:

這對我的作品......

9

安裝爲s3cmd包裝:根據您的操作系統

yum install s3cmd 

sudo apt-get install s3cmd 

。然後用此複製數據:

s3cmd get s3://tecadmin/file.txt 

ls可以列出文件。

更多detils看到this

50

採用最新的AWS CLI(http://aws.amazon.com/cli/),可以使用下面的命令從您的EC2實例,即使你的本地計算機中複製文件或S3存儲。

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

然後你會得到這樣的:

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

如果這是你的aws CLI工具的第一次使用,那麼你就需要運行:

aws configure

這將要求您輸入您的訪問密鑰&祕密,並指定一個默認區域。

+1

aws cli比s3cmd好多了。 – 2016-12-17 19:58:15

+0

@ajtrichards有沒有辦法使用命令行參數提供訪問密鑰和祕密? – EmptyData 2017-06-21 16:36:08

+0

@EmptyData您可以使用'--profile PROFILE_NAME'標誌來指示要使用哪組證書?如果您已在您的命令行上設置多個AWS配置文件。 – ajtrichards 2017-06-21 18:28:28

3

所有將s3掛載爲僞文件系統的嘗試都是有問題的。它是一個對象存儲,而不是塊設備。 如果您必須安裝它,因爲您的遺留代碼必須具有本地文件路徑,請嘗試欺騙。它比s3fs快50倍。 https://github.com/kahing/goofys

s3cmd在牙齒這些天有點長。 AWS cli目前是更好的選擇。語法稍微不方便,但它是一個你需要保留的少一個工具。

如果你可以堅持http訪問。從長遠來看,它會讓你的生活更輕鬆。