开发区

高级软件开发与MATLAB

的遗愿清单

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

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

MATLAB和Simu万博1manbetxlink开发人员已经可以在我们的按文件规定装运R2018b/19a产品通过利用数据存储该函数允许轻松读取/写入存储在S3中的数据(以及其他形式的远程数据)。

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

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

S3密钥和对象上载,带有加密动画

现在,就不多说了,请允许我介绍一位开源*原型* MATLAB客户端发布在github.com允许MATLAB开发人员使用Amazon S3。最简单的入门方法是使用以下工具克隆此存储库和所有必需的依赖项:

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

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

构建底层Java构件

您可以使用Maven构建底层Java SDK,过程非常简单:

$cd matlab-aws-s3/软件/Java/$mvn清洁软件包

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

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

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

{“aws访问密钥id”:“已编辑”、“机密访问密钥”:“已编辑”、“区域”:“us-west-1”} 创建一个桶

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

%创建客户端s3=aws.s3.client()s3.initialize();%创建一个bucket,注意AWS提供了命名指导bucketName='com示例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中的数据存储到AmazonS3上基于云的存储桶变得简单。

%上载文件%Create some random data x=rand(100100);%uploadfile=[tempname,.mat'];Save(uploadfile,'x');%将.mat文件放入存储桶S3.putObject中名为'myobjectkey'的S3对象中(bucketName,uploadfile,'myobjectkey'); 获取数据

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

%下载一个文件s3.getObject(bucketName、'myobjectkey'、'Download.mat'); 清理

你明白了。MATLAB界面允许您控制AmazonS3上的云对象存储中数据的持久化方式。您可以类似地删除数据,并清理存储桶。

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

有了这个界面,您现在可以对从谁访问数据到他们拥有什么读/写权限的一切进行更精细的控制。

%创建一个罐头ACL对象在这种情况下AuthenticatedRead并应用它%谨慎授予权限AuthenticatedUsers将允许%任何一个AWS帐户这桶将成为可读的更广泛的互联网myCannedACL = aws.s3.CannedAccessControlList(“AuthenticatedRead”);s3.setBucketAcl (myBucket myCannedACL); 启示
  1. MATLAB工具构建在由Amazon发布的Java SDK. SDK本身受到许多活跃开发团队的支持万博1manbetx,并经常使用新功能和修复程序进行更新。为了让您了解这些SDK的发展速度,一个月内总共有1508个文件发生了更改,增加了215128个,删除了79774个。将MATLAB工具发布到GitHub的含义是,现在MATLAB用户可以通过重建SDK并使用MATLAB的最新版本来跟上这些快速发展的步伐。
  2. 对象存储系统在廉价存储和高耐久性(99.99999999999%即11)方面提供了巨大的价值。反过来,与项目相关的存储成本开始暴跌,这一运动已经导致用户不再询问要捕获和存储什么。现在讨论的焦点是我们如何分析所有这些数据,因为捕获所有数据并轻松存储是合乎逻辑的。这反过来又把我们引向了大数据(Big Data,一个经常被过度使用和炒作的术语)。改天再谈。
  3. 提供给MATLAB用户的API与提供给Java开发人员的底层API尽可能相同。通过保持这种保真度,MATLAB用户可以利用亚马逊提供的大量资源和从像StackOverflow这样的地方提炼的知识,直接将这些技术应用到他们的MATLAB工作流程中。

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

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

|

评论

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