in sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs [3535:3974]
public virtual Response<ShareFileInfo> SetHttpHeaders(
ShareFileSetHttpHeadersOptions options = default,
ShareFileRequestConditions conditions = default,
CancellationToken cancellationToken = default) =>
SetHttpHeadersInternal(
options?.NewSize,
options?.HttpHeaders,
options?.SmbProperties,
options?.FilePermission?.Permission,
options?.FilePermission?.PermissionFormat,
options?.PosixProperties,
conditions,
async: false,
cancellationToken)
.EnsureCompleted();
/// <summary>
/// The <see cref="SetHttpHeadersAsync(long?, ShareFileHttpHeaders, FileSmbProperties, string, ShareFileRequestConditions, CancellationToken)"/>
/// operation sets system properties on the file.
///
/// For more information, see
/// <see href="https://docs.microsoft.com/rest/api/storageservices/set-file-properties">
/// Set File Properties</see>.
/// </summary>
/// <param name="options">
/// Optional parameters.
/// </param>
/// <param name="conditions">
/// Optional <see cref="ShareFileRequestConditions"/> to add conditions
/// on creating the file.
/// </param>
/// <param name="cancellationToken">
/// Optional <see cref="CancellationToken"/> to propagate
/// notifications that the operation should be cancelled.
/// </param>
/// <returns>
/// A <see cref="Response{StorageFileInfo}"/> describing the
/// state of the file.
/// </returns>
/// <remarks>
/// A <see cref="RequestFailedException"/> will be thrown if
/// a failure occurs.
/// If multiple failures occur, an <see cref="AggregateException"/> will be thrown,
/// containing each failure instance.
/// </remarks>
public virtual async Task<Response<ShareFileInfo>> SetHttpHeadersAsync(
ShareFileSetHttpHeadersOptions options = default,
ShareFileRequestConditions conditions = default,
CancellationToken cancellationToken = default) =>
await SetHttpHeadersInternal(
options?.NewSize,
options?.HttpHeaders,
options?.SmbProperties,
options?.FilePermission?.Permission,
options?.FilePermission?.PermissionFormat,
options?.PosixProperties,
conditions,
async: true,
cancellationToken)
.ConfigureAwait(false);
/// <summary>
/// The <see cref="SetHttpHeaders(long?, ShareFileHttpHeaders, FileSmbProperties, string, ShareFileRequestConditions, CancellationToken)"/>
/// operation sets system properties on the file.
///
/// For more information, see
/// <see href="https://docs.microsoft.com/rest/api/storageservices/set-file-properties">
/// Set File Properties</see>.
/// </summary>
/// <param name="newSize">
/// Optional. Resizes a file to the specified size.
/// If the specified byte value is less than the current size
/// of the file, then all ranges above the specified byte value
/// are cleared.
/// </param>
/// <param name="httpHeaders">
/// Optional. The standard HTTP header system properties to set. If not specified, existing values will be cleared.
/// </param>
/// <param name="smbProperties">
/// Optional SMB properties to set for the file.
/// </param>
/// <param name="filePermission">
/// Optional file permission to set for the file.
/// </param>
/// <param name="conditions">
/// Optional <see cref="ShareFileRequestConditions"/> to add conditions
/// on creating the file.
/// </param>
/// <param name="cancellationToken">
/// Optional <see cref="CancellationToken"/> to propagate
/// notifications that the operation should be cancelled.
/// </param>
/// <returns>
/// A <see cref="Response{StorageFileInfo}"/> describing the
/// state of the file.
/// </returns>
/// <remarks>
/// A <see cref="RequestFailedException"/> will be thrown if
/// a failure occurs.
/// If multiple failures occur, an <see cref="AggregateException"/> will be thrown,
/// containing each failure instance.
/// </remarks>
[EditorBrowsable(EditorBrowsableState.Never)]
#pragma warning disable AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
public virtual Response<ShareFileInfo> SetHttpHeaders(
#pragma warning restore AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
long? newSize,
ShareFileHttpHeaders httpHeaders,
FileSmbProperties smbProperties,
string filePermission,
ShareFileRequestConditions conditions,
CancellationToken cancellationToken) =>
SetHttpHeadersInternal(
newSize,
httpHeaders,
smbProperties,
filePermission,
filePermissionFormat: default,
posixProperties: default,
conditions,
async: false,
cancellationToken)
.EnsureCompleted();
/// <summary>
/// The <see cref="SetHttpHeaders(long?, ShareFileHttpHeaders, FileSmbProperties, string, CancellationToken)"/>
/// operation sets system
/// properties on the file.
///
/// For more information, see
/// <see href="https://docs.microsoft.com/rest/api/storageservices/set-file-properties">
/// Set File Properties</see>.
/// </summary>
/// <param name="newSize">
/// Optional. Resizes a file to the specified size.
/// If the specified byte value is less than the current size
/// of the file, then all ranges above the specified byte value
/// are cleared.
/// </param>
/// <param name="httpHeaders">
/// Optional. The standard HTTP header system properties to set. If not specified, existing values will be cleared.
/// </param>
/// <param name="smbProperties">
/// Optional SMB properties to set for the file.
/// </param>
/// <param name="filePermission">
/// Optional file permission to set for the file.
/// </param>
/// <param name="cancellationToken">
/// Optional <see cref="CancellationToken"/> to propagate
/// notifications that the operation should be cancelled.
/// </param>
/// <returns>
/// A <see cref="Response{StorageFileInfo}"/> describing the
/// state of the file.
/// </returns>
/// <remarks>s
/// A <see cref="RequestFailedException"/> will be thrown if
/// a failure occurs.
/// If multiple failures occur, an <see cref="AggregateException"/> will be thrown,
/// containing each failure instance.
/// </remarks>
#pragma warning disable AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual Response<ShareFileInfo> SetHttpHeaders(
#pragma warning restore AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
long? newSize,
ShareFileHttpHeaders httpHeaders,
FileSmbProperties smbProperties,
string filePermission,
CancellationToken cancellationToken) =>
SetHttpHeadersInternal(
newSize,
httpHeaders,
smbProperties,
filePermission,
filePermissionFormat: default,
posixProperties: default,
conditions: default,
async: false,
cancellationToken)
.EnsureCompleted();
/// <summary>
/// The <see cref="SetHttpHeadersAsync(long?, ShareFileHttpHeaders, FileSmbProperties, string, ShareFileRequestConditions, CancellationToken)"/>
/// operation sets system properties on the file.
///
/// For more information, see
/// <see href="https://docs.microsoft.com/rest/api/storageservices/set-file-properties">
/// Set File Properties</see>.
/// </summary>
/// <param name="newSize">
/// Optional. Resizes a file to the specified size.
/// If the specified byte value is less than the current size
/// of the file, then all ranges above the specified byte value
/// are cleared.
/// </param>
/// <param name="httpHeaders">
/// Optional. The standard HTTP header system properties to set. If not specified, existing values will be cleared.
/// </param>
/// <param name="smbProperties">
/// Optional SMB properties to set for the file.
/// </param>
/// <param name="filePermission">
/// Optional file permission to set for the file.
/// </param>
/// <param name="conditions">
/// Optional <see cref="ShareFileRequestConditions"/> to add conditions
/// on creating the file.
/// </param>
/// <param name="cancellationToken">
/// Optional <see cref="CancellationToken"/> to propagate
/// notifications that the operation should be cancelled.
/// </param>
/// <returns>
/// A <see cref="Response{StorageFileInfo}"/> describing the
/// state of the file.
/// </returns>
/// <remarks>
/// A <see cref="RequestFailedException"/> will be thrown if
/// a failure occurs.
/// If multiple failures occur, an <see cref="AggregateException"/> will be thrown,
/// containing each failure instance.
/// </remarks>
[EditorBrowsable(EditorBrowsableState.Never)]
#pragma warning disable AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
public virtual async Task<Response<ShareFileInfo>> SetHttpHeadersAsync(
#pragma warning restore AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
long? newSize,
ShareFileHttpHeaders httpHeaders,
FileSmbProperties smbProperties,
string filePermission,
ShareFileRequestConditions conditions,
CancellationToken cancellationToken) =>
await SetHttpHeadersInternal(
newSize,
httpHeaders,
smbProperties,
filePermission,
filePermissionFormat: default,
posixProperties: default,
conditions,
async: true,
cancellationToken)
.ConfigureAwait(false);
/// <summary>
/// The <see cref="SetHttpHeadersAsync(long?, ShareFileHttpHeaders, FileSmbProperties, string, CancellationToken)"/>
/// operation sets system properties on the file.
///
/// For more information, see
/// <see href="https://docs.microsoft.com/rest/api/storageservices/set-file-properties">
/// Set File Properties</see>.
/// </summary>
/// <param name="newSize">
/// Optional. Resizes a file to the specified size.
/// If the specified byte value is less than the current size
/// of the file, then all ranges above the specified byte value
/// are cleared.
/// </param>
/// <param name="httpHeaders">
/// Optional. The standard HTTP header system properties to set. If not specified, existing values will be cleared.
/// </param>
/// <param name="smbProperties">
/// Optional SMB properties to set for the file.
/// </param>
/// <param name="filePermission">
/// Optional file permission to set for the file.
/// </param>
/// <param name="cancellationToken">
/// Optional <see cref="CancellationToken"/> to propagate
/// notifications that the operation should be cancelled.
/// </param>
/// <returns>
/// A <see cref="Response{StorageFileInfo}"/> describing the
/// state of the file.
/// </returns>
/// <remarks>
/// A <see cref="RequestFailedException"/> will be thrown if
/// a failure occurs.
/// If multiple failures occur, an <see cref="AggregateException"/> will be thrown,
/// containing each failure instance.
/// </remarks>
#pragma warning disable AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual async Task<Response<ShareFileInfo>> SetHttpHeadersAsync(
#pragma warning restore AZC0002 // DO ensure all service methods, both asynchronous and synchronous, take an optional CancellationToken parameter called cancellationToken.
long? newSize,
ShareFileHttpHeaders httpHeaders,
FileSmbProperties smbProperties,
string filePermission,
CancellationToken cancellationToken) =>
await SetHttpHeadersInternal(
newSize,
httpHeaders,
smbProperties,
filePermission,
filePermissionFormat: default,
posixProperties: default,
conditions: default,
async: true,
cancellationToken)
.ConfigureAwait(false);
/// <summary>
/// The <see cref="SetHttpHeadersInternal"/> operation sets system
/// properties on the file.
///
/// For more information, see
/// <see href="https://docs.microsoft.com/rest/api/storageservices/set-file-properties">
/// Set File Properties</see>.
/// </summary>
/// <param name="newSize">
/// Optional. Resizes a file to the specified size.
/// If the specified byte value is less than the current size
/// of the file, then all ranges above the specified byte value
/// are cleared.
/// </param>
/// <param name="httpHeaders">
/// Optional. The standard HTTP header system properties to set. If not specified, existing values will be cleared.
/// </param>
/// <param name="smbProperties">
/// Optional SMB properties to set for the file.
/// </param>
/// <param name="filePermission">
/// Optional file permission to set for the file.
/// </param>
/// <param name="filePermissionFormat">
/// Optional file permission format.
/// </param>
/// <param name="posixProperties">
/// Optional NFS properties.
/// </param>
/// <param name="conditions">
/// Optional <see cref="ShareFileRequestConditions"/> to add conditions
/// on creating the file.
/// </param>
/// <param name="async">
/// Whether to invoke the operation asynchronously.
/// </param>
/// <param name="cancellationToken">
/// Optional <see cref="CancellationToken"/> to propagate
/// notifications that the operation should be cancelled.
/// </param>
/// <returns>
/// A <see cref="Response{StorageFileInfo}"/> describing the
/// state of the file.
/// </returns>
/// <remarks>
/// A <see cref="RequestFailedException"/> will be thrown if
/// a failure occurs.
/// If multiple failures occur, an <see cref="AggregateException"/> will be thrown,
/// containing each failure instance.
/// </remarks>
private async Task<Response<ShareFileInfo>> SetHttpHeadersInternal(
long? newSize,
ShareFileHttpHeaders httpHeaders,
FileSmbProperties smbProperties,
string filePermission,
FilePermissionFormat? filePermissionFormat,
FilePosixProperties posixProperties,
ShareFileRequestConditions conditions,
bool async,
CancellationToken cancellationToken)
{
using (ClientConfiguration.Pipeline.BeginLoggingScope(nameof(ShareFileClient)))
{
ClientConfiguration.Pipeline.LogMethodEnter(
nameof(ShareFileClient),
message:
$"{nameof(Uri)}: {Uri}\n" +
$"{nameof(newSize)}: {newSize}\n" +
$"{nameof(httpHeaders)}: {httpHeaders}");
DiagnosticScope scope = ClientConfiguration.ClientDiagnostics.CreateScope($"{nameof(ShareFileClient)}.{nameof(SetHttpHeaders)}");
try
{
scope.Start();
FileSmbProperties smbProps = smbProperties ?? new FileSmbProperties();
ShareExtensions.AssertValidFilePermissionAndKey(filePermission, smbProps.FilePermissionKey);
ResponseWithHeaders<FileSetHttpHeadersHeaders> response;
if (async)
{
response = await FileRestClient.SetHttpHeadersAsync(
fileAttributes: smbProps.FileAttributes.ToAttributesString(),
fileCreationTime: smbProps.FileCreatedOn.ToFileDateTimeString(),
fileLastWriteTime: smbProps.FileLastWrittenOn.ToFileDateTimeString(),
fileContentLength: newSize,
filePermission: filePermission,
filePermissionFormat: filePermissionFormat,
filePermissionKey: smbProps.FilePermissionKey,
fileChangeTime: smbProps.FileChangedOn.ToFileDateTimeString(),
owner: posixProperties?.Owner,
group: posixProperties?.Group,
fileMode: posixProperties?.FileMode?.ToOctalFileMode(),
fileHttpHeaders: httpHeaders.ToFileHttpHeaders(),
shareFileRequestConditions: conditions,
cancellationToken: cancellationToken)
.ConfigureAwait(false);
}
else
{
response = FileRestClient.SetHttpHeaders(
fileAttributes: smbProps.FileAttributes.ToAttributesString(),
fileCreationTime: smbProps.FileCreatedOn.ToFileDateTimeString(),
fileLastWriteTime: smbProps.FileLastWrittenOn.ToFileDateTimeString(),
fileContentLength: newSize,
filePermission: filePermission,
filePermissionFormat: filePermissionFormat,
filePermissionKey: smbProps.FilePermissionKey,
fileChangeTime: smbProps.FileChangedOn.ToFileDateTimeString(),
owner: posixProperties?.Owner,
group: posixProperties?.Group,
fileMode: posixProperties?.FileMode?.ToOctalFileMode(),
fileHttpHeaders: httpHeaders.ToFileHttpHeaders(),
shareFileRequestConditions: conditions,
cancellationToken: cancellationToken);
}
return Response.FromValue(
response.ToShareFileInfo(),
response.GetRawResponse());
}
catch (Exception ex)
{
ClientConfiguration.Pipeline.LogException(ex);
scope.Failed(ex);
throw;
}
finally
{
ClientConfiguration.Pipeline.LogMethodExit(nameof(ShareFileClient));
scope.Dispose();
}
}
}