在 S3 的环回组件存储中指定存储桶名称

specifying bucket-name in loopback-component-storage for S3

我在使用 Amazon S3 的 loopback-component-storage 时遇到了障碍。 作为测试,我正在尝试从我的浏览器应用程序将文件上传到 S3,它在后端调用我的环回 API。

我的 datasources.json 服务器配置如下:

  "s3storage": {
    "name": "s3storage",
    "connector": "loopback-component-storage",
    "provider": "amazon",
    "key": “blahblah”,
    "keyId": “blahblah”
  },

我的 API 端点是: '/api/Storage'

我从 API 得到的错误响应如下:

.   error: {name: "MissingRequiredParameter", status: 500, message: "Missing required key 'Bucket' in params",…}
.   code: "MissingRequiredParameter"
.   message: "Missing required key 'Bucket' in params"
.   name: "MissingRequiredParameter"
.   stack: "MissingRequiredParameter: Missing required key 'Bucket' in params …”
.   status: 500
.   time: "2015-03-18T01:54:48.267Z"

如何将 {“params”: {“Bucket”: “bucket-name”}} 参数传递到我的环回 REST API?

请指教。非常感谢!

AFAIK 桶在 loopback-component-storage or pkgcloud 世界中被称为容器。

您可以在 URL 参数中指定一个容器。如果您的目标是 /api/Storage 那么您将在该路径中指定您的容器,格式为 PATH/:DATASOURCE/:CONTAINER/:ACTION.

,例如 /api/Storage/container1/upload

查看此处的测试以获取更多示例: https://github.com/strongloop/loopback-component-storage/blob/4e4a8f44be01e4bc1c30019303997e61491141d4/test/upload-download.test.js#L157

无赖。 "container" 基本上转换为 S3 的 "bucket"。我试图通过 POST 传递 params 对象,但问题在于细节,即上传的 HTTP POST 路径正在寻找路径本身中的 bucket/container。 /api/Storage/abc/upload 表示 'abc' 是桶。