我们如何使用AWS/S3?

How do we use AWS/S3?

我需要一些简单的示例来开始 AWS/S3 用法。

情况是这样的;我的 iOS 应用程序已从 Parse.com 转移到 Parse-Server / Heroku。 一切正常,但有时我需要存储图像或声音文件。 我已经关注 this 并配置了一个 S3Adapter。

我现在的问题是:"How to use it?"

我想找到一些示例代码,使用我刚刚配置的这个 S3Adapter 来保存和检索它。

如果您已经在解析服务器中配置了 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
    }
  ),
  ...
});

  1. 接下来您需要在 iOS 客户端保存一些文件。您需要创建一个新的 PFFile 并调用 saveInBackground 方法来保存该文件。在保存文件之前,解析服务器将检查您是否提供了自定义文件适配器,如果您提供了,它将尝试使用它,如果没有,它将转到默认值(MongoDB 上的 GridStore)。因此,您的 iOS 代码应如下所示:

objective c

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

swift

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

保存文件后,您可以转到AWS 中的Bucket 并检查文件是否已添加到那里。

希望对您有所帮助。如果您需要更多信息,请告诉我。