开发区域

MATLAB高级软件开发

遗愿清单

当我们谈论时,我有必要向大家介绍另一种类型的桶。它包含对象,并允许保留大量非结构化数据。

现在是2019年,在这个云的时代,有很多对象存储可供用户使用的系统。在本文中,我将重点介绍Amazon提供的这种存储系统所提供的服务。的Amazon S3™(简单存储服务)使用与亚马逊运行其平台相同的可伸缩存储基础设施。

MATLAB和Simu万博1manbetxlink开发人员已经可以使用这些服务R2018b/19a产品按文件装运通过利用数据存储允许轻松读取/写入存储在S3上的数据(以及其他形式的远程数据)的功能。

此数据存储函数的特殊形式允许用户直接处理图像(ImageDatastore),档案(FileDatastore)、电子表格(SpreadsheetDatastore)或表格文本(TabularTextDatastore).通常,一旦用户使用访问密钥ID、秘密访问密钥和区域配置了MATLAB,数据存储就会向用户提供国际化资源标识符(IRI)所指向的数据的抽象。

抽象很好,但开发人员有充分的理由要求更好地控制他们的代码对数据的处理。他们需要声明和附加权限,控制数据的加密,定义谁可以和不能访问数据,并行使其创建、读取、更新和删除的权利(CRUD)的内容。其中许多操作都需要满足各种业务、法律和技术需求,这些需求远远超出了仅仅分析的范围。此外,开发人员可以扩展工具并使用它来调试数据访问工作流。

S3密钥和对象上传加密卡通

说到这里,废话不多说,请允许我向你们介绍一位开源*原型* MATLAB客户端发布在github.com允许MATLAB开发人员使用Amazon S3。最简单的方法是克隆这个存储库和所有必需的依赖:

Git克隆——递归https://github.com/mathworks-ref-arch/mathworks-aws-support.git万博1manbetx

存储库包含利用AWS Java SDK.此软件包使用某些第三方内容,这些内容是根据单独的许可协议授权的。有关在构建时下载的第三方软件,请参阅pom.xml文件。

构建底层Java构件

你可以使用Maven构建底层Java SDK,过程很简单:

$ cd matlab-aws-s3/Software/Java/ $ mvn清理包

在成功构建时,JAR存档被打包,并通过运行启动程序对MATLAB可用。m文件

>> cd MATLAB -aws-s3/Software/MATLAB >>启动 根据S3服务进行身份验证

可以通过多种方式实现这一点,包括使用Amazon CLI(可以直接从MATLAB调用)、令牌服务(STS用于有时间限制或基于多因素的身份验证)、环境变量等。为了演示的目的,为了保持简单,我将在MATLAB路径上使用一个静态文件,带有来自Amazon身份和访问管理(IAM)服务的凭据:

{"aws_access_key_id": "REDACTED", "secret_access_key": "REDACTED", "region": "us-west-1"} 创建桶

创建桶可以使用以下API接口:

%创建客户端s3 = aws.s3.Client() s3.initialize();%创建桶,注意AWS提供命名指南bucketName = 'com-example-mybucket';s3.createBucket (bucketName); 列出现有桶

您可以列出所有现有的桶:

获取桶的列表bucketList = s3.listBuckets();bucketList所有者OwnerId =创建日期的名字 ______________________________ __________________________ _______________ _____________ ' 星期四3月02 02:13:19格林尼治时间2018“com-example-mybucket“aws_test_dept ' '[编辑]“清华2018年6月08 18:46:37 BST“com-example-my-test-bucket“aws_test_dept ' '[编辑]'

我警告过你,这篇文章是关于遗愿清单的!

存储数据

将MATLAB中的数据存储到Amazon S3上基于云的存储桶变得简单。

创建一些随机数据x = rand(100,100);%保存数据到文件uploadfile = [tempname,'.mat'];保存(还是“x”);将. mat文件放入S3 bucket中名为“myobjectkey”的S3对象中。putObject(bucketName, uploadfile, 'myobjectkey'); 获取数据

类似地,您可以将对象从S3桶拉入MATLAB,如下所示。

下载文件s3.getObject(bucketName,'myobjectkey',' Download .mat'); 清理

你懂的。MATLAB接口允许您控制如何在Amazon S3上的云对象存储上持久化数据。您的数据可以类似地删除,桶可以被清理。

s3.deleteBucket (bucketName); 控制,控制,控制访问

有了这个接口,您现在可以更好地控制从谁可以访问数据到他们有什么读/写的权利。

在这种情况下,创建一个密封ACL对象AuthenticatedRead并应用它%警告授予AuthenticatedUsers权限将应用权限%任何具有AWS帐户的人,因此该桶将对更广泛的互联网可读myCannedACL = AWS .s3. cannedaccesscontrollist ('AuthenticatedRead');s3.setBucketAcl (myBucket myCannedACL); 影响
  1. MATLAB工具构建在亚马逊发布的Java SDK.SDK本身由许多活跃的开发人员团队支万博1manbetx持,并经常更新新功能和修复。为了让您了解这些SDK的发展速度,在一个月内,总共有1508个文件被更改,增加了215,128个文件,删除了79,774个文件。将MATLAB工具发布到GitHub的含义是,现在MATLAB用户可以通过重新构建SDK并使用MATLAB的最新版本来跟上这些快速发展的步伐。
  2. 对象存储系统在廉价存储和高持久性(99.99999999999%,即11个9)方面提供了巨大的价值。反过来,与项目相关的存储成本开始大幅下降,这一变化促使用户不再询问要捕获和存储什么。现在讨论的焦点是我们如何分析所有这些数据,因为捕获所有数据并轻松存储是合乎逻辑的。这反过来又把我们引向了大数据(一个经常被过度使用和炒作的流行语)。这个话题改天再说。
  3. 提供给MATLAB用户的API与提供给Java开发人员的底层API尽可能相同。通过保持这种保真度,MATLAB用户可以利用亚马逊提供的大量资源和StackOverflow等地点的提炼知识,直接将这些技术应用到他们的MATLAB工作流程中。

最后,这篇文章中讨论的接口使开发人员可以很容易地利用几乎无限的基于云存储的承诺,在现有的和熟悉的MATLAB和Simulink工具中加速您的工作流。万博1manbetx最重要的是,所有这些都不会阻止您在相同的代码中使用更合适的高级接口,从而为您提供更广泛的方法选择。

那么,你使用云对象存储吗?一如既往,我们重视您的想法、反馈和评论。

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。