ADLSGen2与Blob存储的比较,以及在ADLSGen2中可行但在Blob存储中不可行的操作
创始人
2024-07-27 16:31:18
0

在ADLS Gen2中,有一些操作是不可能在Blob存储中实现的。下面列出几个例子:

  1. 原子操作:在ADLS Gen2中,可以使用原子操作实现将多个操作打包成一个事务,以确保它们都成功或全部失败。而在Blob存储中,不支持原子操作。

代码示例:

在ADLS Gen2中,可以使用以下代码实现原子操作:

try { //开始一个事务 adlsClient.FileSystem.BeginCreate(Path, options); adlsClient.FileSystem.Create(Path, options); adlsClient.FileSystem.SetPermission(Path, options, permissions);

//提交事务
adlsClient.FileSystem.CommitCreate(Path);

} catch (Exception ex) { //回滚事务 adlsClient.FileSystem.AbortCreate(Path); }

  1. 安全访问:ADLS Gen2与Blob存储都支持SAS令牌,但只有ADLS Gen2支持OAuth身份验证、ACL、RBAC等高级安全功能。

代码示例:

在ADLS Gen2中,可以使用以下代码实现RBAC:

AccessControlType type = AccessControlType.Allow;

FileSystemAccessRights rights = FileSystemAccessRights.Read | FileSystemAccessRights.ExecuteFile | FileSystemAccessRights.List;

string upn = "user1@contoso.com";

//添加用户到角色 adlsClient.FileSystem.AddRoleAssignment(Path, upn, "ReadAndExecute", type, rights);

//从角色中移除用户 adlsClient.FileSystem.RemoveRoleAssignment(Path, upn, "ReadAndExecute");

  1. 目录操作:在ADLS Gen2中,可以进行更为灵活的目录操作,比如创建/删除目录、移动/重命名目录等。而在Blob存储中,只能通过上传/下载文件的方式来实现类似的操作。

代码示例:

在ADLS Gen2中,可以使用以下代码实现创建目录:

adlsClient.FileSystem.Mkdirs("example-directory");

在ADLS Gen2中,可以使用以下代码实现删除目录:

adlsClient.FileSystem.Delete("example-directory");

相关内容

热门资讯

Android Studio ... 要解决Android Studio 4无法检测到Java代码,无法打开SDK管理器和设置的问题,可以...
安装tensorflow mo... 要安装tensorflow models object-detection软件包和pandas的每个...
安装了Laravelbackp... 检查是否创建了以下自定义文件并进行正确的配置config/backpack/base.phpconf...
安装了centos后会占用多少... 安装了CentOS后会占用多少内存取决于多个因素,例如安装的软件包、系统配置和运行的服务等。通常情况...
按照Laravel方式通过Pr... 在Laravel中,我们可以通过定义关系和使用查询构建器来选择模型。首先,我们需要定义Profile...
按照分类ID显示Django子... 在Django中,可以使用filter函数根据分类ID来筛选子类别。以下是一个示例代码:首先,假设你...
Android Studio ... 要给出包含代码示例的解决方法,我们可以使用Markdown语法来展示代码。下面是一个示例解决方案,其...
Android Retrofi... 问题描述:在使用Android Retrofit进行GET调用时,获取的响应为空,即使服务器返回了正...
Alexa技能在返回响应后出现... 在开发Alexa技能时,如果在返回响应后出现问题,可以按照以下步骤进行排查和解决。检查代码中的错误处...
Airflow Dag文件夹 ... 要忽略Airflow中的笔记本检查点,可以在DAG文件夹中使用以下代码示例:from airflow...