开发区域

高级软件开发与MATLAB

的遗愿清单

当我们谈论在美国,我向你介绍另一种类型的桶是有意义的。它包含对象并允许保留大量的非结构化数据。

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

MATLAB和Simu金宝applink开发人员已经可以使用这些服务按文件规定装运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金宝app

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

构建底层Java构件

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

$ cd matlab-aws-s3/Software/Java/ $ mvn clean package

在一个成功的构建中,JAR存档被打包,并通过运行启动程序提供给MATLAB。m文件

>> cd MATLAB -aws-s3/Software/MATLAB >>启动 通过S3服务进行认证

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

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

要创建桶,你可以使用API接口:

%创建客户端s3 = aws.s3.Client() s3.initialize();创建一个bucket,注意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对象中,该对象名为“myobjectkey”。putObject (bucketName,还是“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工具构建在由Amazon发布的Java SDK.SDK本身受到许多活跃开发人员团队的金宝app支持,经常更新新功能和补丁。为了让您了解这些SDK的发展有多快,在一个月里总共有1508个文件发生了变化,增加了215,128个文件,删除了79,774个文件。将MATLAB工具发布到GitHub的含义是,现在MATLAB用户可以通过重建SDK和使用MATLAB的最新版本来跟上这些快速发展的步伐。
  2. 对象存储系统在廉价存储和高耐久性(99.99999999999%即11)方面提供了巨大的价值。反过来,与项目相关的存储成本开始暴跌,这一运动已经导致用户不再询问要捕获和存储什么。现在讨论的焦点是我们如何分析所有这些数据,因为捕获所有数据并轻松存储是合乎逻辑的。这反过来又把我们引向了大数据(Big Data,一个经常被过度使用和炒作的术语)。改天再谈。
  3. 提供给MATLAB用户的API与提供给Java开发人员的底层API尽可能相同。通过保持这种保真度,MATLAB用户可以利用亚马逊提供的大量资源和从像StackOverflow这样的地方提炼的知识,直接将这些技术应用到他们的MATLAB工作流程中。

最后,界面,如这篇文章中讨论的,使您更容易,开发人员利用承诺的几乎无限的云基础存储,在您现有和熟悉的MATLAB和Simulink工具的工作流程。金宝app最重要的是,所有这些都不会阻止您在相同的代码中使用高级接口,这是更合适的,为您提供了更广泛的方法选择。

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

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。