Search code examples
azure-storageazure-filesazure-sas

Is separate SharedAccessFilePolicy for each file is ok?


I am creating a time bound SAS for each requested file. To do that I am creating a new SharedAccessFilePolicy object as followings:

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
};

Question1: Is it ok to create a new SharedAccessFilePolicy for each requested file?

Question2: Do we need to clean-up the SharedAccessFilePolicy objects that we have created or those would be destroyed automatically?


Solution

  • It's OK to create a new SharedAccessFilePolicy for each requested file like your code above, since they're all client-side operations actually. No server request happens in your code above.

    You don't need to clean up SharedAccessFilePolicy objects above, since it's just a temporary variable to define the SAS access policy before generation.

    Note that SharedAccessFilePolicy will be saved on server side only when you're using Stored Access Policies, but you're not using that feature in your code above.