每个文件的单独 SharedAccessFilePolicy 是否可以?

Is separate SharedAccessFilePolicy for each file is ok?

我正在为每个请求的文件创建一个时间限制的 SAS。为此,我正在创建一个新的 SharedAccessFilePolicy 对象,如下所示:

SharedAccessFilePolicy sasConstraints = new SharedAccessFilePolicy();

sasConstraints.SharedAccessExpiryTime = expirey;
sasConstraints.Permissions = SharedAccessFilePermissions.Read;
string sasBlobToken = file.GetSharedAccessSignature(sasConstraints);

SharedAccessFilePolicy sharedPolicy = new SharedAccessFilePolicy()
{
    SharedAccessExpiryTime = expirey,
    Permissions = SharedAccessFilePermissions.Read
};

问题 1: 可以为每个请求的文件创建一个新的 SharedAccessFilePolicy 吗?

问题 2: 我们是否需要清理我们创建的 SharedAccessFilePolicy 对象,否则这些对象会自动销毁?

可以像上面的代码一样为每个请求的文件创建一个新的 SharedAccessFilePolicy,因为它们实际上都是 client-side 操作。上面的代码中没有发生服务器请求。

您不需要清理上面的 SharedAccessFilePolicy 个对象,因为它只是一个临时变量,用于在生成之前定义 SAS 访问策略。

请注意,只有当您使用 Stored Access Policies 时,SharedAccessFilePolicy 才会保存在服务器端,但您没有在上面的代码中使用该功能。