使用媒体资源(即文件)在CAP文档中有很好的介绍,所以让我们跳到一个非常简单的示例中。
1–默认处理程序
首先,我们需要创建一个新的CAP项目(节点.jsodatav4)和一个cds文件来定义我们的数据模型(db\架构.cds):
然后我们可以创建一个简单的服务(srv\media)-服务.cds):
当我们在使用ODataV4时,什么叫淘客,我们可以通过发送一个请求来存储一个映像以创建对象:
注意:在这种情况下,请求主体是一个空对象,因为ID是由框架生成的(类型为UUID),并且我们只有一个强制属性(出于某种原因,我们仍然需要发送一些应用程序/json负载)。感谢Uwe Fetzer指出这一点。
然后第二次请求上传图像(使用第一次请求返回的id):
然后我们可以通过以下请求获得图像:
非常简单,对吧?但是,使用默认处理程序意味着文件存储在数据库中,大数据提供,这通常不是一个好主意。例如,我们可以将文件存储在Amazon S3中。
2–将文件存储在Amazon S3中
SAP云平台提供了ObjectStore服务,淘客联盟,让我们看看如何利用它。为此,您需要在CloudFoundry(AWS)上有一个SCP子帐户。或者您也可以在本地运行它,这要感谢Gregor Wolf的贡献。
首先让我们创建objectstore服务的服务实例:
然后更新mta.yaml公司添加新资源和依赖项的文件:
然后在srv中添加依赖项\包.jsonAWS SDK文件:
构建srv模块后,物联,我们可以使用AWS SDK与S3互动。我们只需要实现UPDATE处理程序来使用upload方法将文件存储在S3中,什么是大数据技术,READ处理程序来使用getObject方法从S3检索文件:
注意:必须解析VCAP\u SERVICES环境变量来检索AWS config的参数(region、bucket id和credentials)。这些参数也可以用cf env命令列出:
现在当我们发送与前面使用的相同的PUT请求时,我们可以在控制台中看到文件存储在S3上:
3–下一步
现在我们有了一个基本示例,我们可以在许多方面进行改进:
添加一些错误处理处理不同的MIME类型实现删除处理程序创建通用服务来处理与S3的交互,并在其他项目中重用此服务调查访问S3的其他方法的优缺点(ServiceBroker、用户提供的服务)…
注意:源代码可在GitHub上获得。