2016-11-28 64 views
0

我需要一些簡單的例子來開始使用AWS/S3。我們如何使用AWS/S3?

這是情況;我的一個iOS應用程序已從Parse.com轉移到Parse-Server/Heroku。 所有工作正常,但我會在某些時候需要文件存儲圖像或聲音文件。 我已經遵循this並配置了一個S3Adapter。

我現在的問題是:「如何使用它?」

我想找到一些示例代碼使用此S3Adapter,我只是配置爲保存和檢索它。

+0

嘿,只是快速向上 - 以這種方式請求示例通常會導致問題以「請求教程/非現場資源」的緊密原因關閉。你可以看看[這些代碼片段'在github上解析s3adapter'](https://github.com/search?utf8=%E2%9C%93&q=parse+s3adapter&type=Code&ref=searchresults)並修改該問題包括您自己的工作進行中的代碼片段,我們可以幫助改進? –

回答

0

如果您已經在解析服務器中配置了S3並提供了所有相關的詳細信息,例如存儲區,密鑰等,接下來要測試它並檢查解析是否確實將文件存儲在S3上,而不是GridStore上(這是默認)。

爲了測試它,請經過以下步驟:

  1. 打開index.js文件,你的解析服務器項目的根文件夾下找到並檢查文件適配器S3。它應該是這個樣子(從解析服務器的wiki):

var api = new ParseServer({ 
 
    databaseURI: databaseUri || 'mongodb://localhost:27017/dev', 
 
    appId: process.env.APP_ID || 'APPLICATION_ID', 
 
    masterKey: process.env.MASTER_KEY || 'MASTER_KEY', 
 
    ... 
 
    filesAdapter: new S3Adapter(
 
    "S3_ACCESS_KEY", 
 
    "S3_SECRET_KEY", 
 
    "S3_BUCKET", { 
 
     directAccess: true 
 
    } 
 
), 
 
    ... 
 
});

  • 接下來您需要保存一些文件在您的iOS客戶端。您需要創建一個新的PFFile,並調用saveInBackground方法以保存該文件。在保存文件之前,parse-server將檢查你是否提供了自定義文件適配器,如果你這樣做了,它將嘗試使用它,否則它將轉到默認值(MongoDB上的GridStore)。所以,你的iOS代碼應該如下所示:
  • 目標C

    NSData * imageData = UIImagePNGRepresentation(image); 
     
        PFFile * imageFile = [PFFile fileWithName: @"image.png" 
     
         data: imageData 
     
        ]; 
     
        [imageFile saveInBackground];

    迅速

    let imageData = UIImagePNGRepresentation(image) 
     
    let imageFile = PFFile(name:"image.png", data:imageData) 
     
    imageFile.saveInBackground()

    保存文件後,您可以轉到AWS中的存儲桶並檢查文件是否已添加到那裏。

    希望它有幫助。如果您需要更多信息,請讓我知道。

    +0

    只是一個小問題,如果我使用你的代碼來保存圖像,使用默認設置(即GridStoreAdapter而不是S3Adapter)作爲一個簡單的測試。我在哪裏可以檢查我的文件是否已正確上傳?我只是嘗試過,它可能已經工作(至少沒有崩潰),但我不知道在哪裏檢查。 – Michel

    +0

    您可以在MongoDB中檢查它,但最好使用parse-dashboard(https://github.com/ParsePlatform/parse-dashboard)進行檢查,因爲這樣做更簡單。 Parse-Dashboard允許您以非常簡單易用的方式查看MongoDB中的所有數據 –

    +0

    嗯,我看了一下,但沒有注意到任何東西。我究竟應該在哪裏(在MongoDB或parse-dashboard中)看到什麼? – Michel