com.azure.storage.blob.options.AppendBlobAppendBlockFromUrlOptions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-storage-blob Show documentation
Show all versions of azure-storage-blob Show documentation
This module contains client library for Microsoft Azure Blob Storage.
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.storage.blob.options;
import com.azure.core.annotation.Fluent;
import com.azure.core.http.HttpAuthorization;
import com.azure.core.util.CoreUtils;
import com.azure.storage.blob.models.AppendBlobRequestConditions;
import com.azure.storage.blob.models.BlobRange;
import com.azure.storage.blob.models.BlobRequestConditions;
/**
* Extended options that may be passed when appending a block from a source URL.
*/
@Fluent
public final class AppendBlobAppendBlockFromUrlOptions {
private final String sourceUrl;
private BlobRange sourceRange;
private byte[] sourceContentMd5;
private AppendBlobRequestConditions destinationRequestConditions;
private BlobRequestConditions sourceRequestConditions;
private HttpAuthorization sourceAuthorization;
/**
* @param sourceUrl The source URL to copy from. URLs outside of Azure may only be copied to block blobs.
*/
public AppendBlobAppendBlockFromUrlOptions(String sourceUrl) {
this.sourceUrl = sourceUrl;
}
/**
* @return Source URL to copy from.
*/
public String getSourceUrl() {
return sourceUrl;
}
/**
* @return Range of bytes to read from the source.
*/
public BlobRange getSourceRange() {
return sourceRange;
}
/**
* @param sourceRange Range of bytes to read from the source.
* @return The updated options.
*/
public AppendBlobAppendBlockFromUrlOptions setSourceRange(BlobRange sourceRange) {
this.sourceRange = sourceRange;
return this;
}
/**
* @return MD5 of the source content to be appended.
*/
public byte[] getSourceContentMd5() {
return CoreUtils.clone(sourceContentMd5);
}
/**
* @param sourceContentMd5 MD5 of the source content to be appended.
* @return The updated options.
*/
public AppendBlobAppendBlockFromUrlOptions setSourceContentMd5(byte[] sourceContentMd5) {
this.sourceContentMd5 = CoreUtils.clone(sourceContentMd5);
return this;
}
/**
* @return {@link AppendBlobRequestConditions} for writing to destination.
*/
public AppendBlobRequestConditions getDestinationRequestConditions() {
return destinationRequestConditions;
}
/**
* @param destinationRequestConditions {@link AppendBlobRequestConditions} for writing to destination.
* @return The updated options.
*/
public AppendBlobAppendBlockFromUrlOptions setDestinationRequestConditions(AppendBlobRequestConditions destinationRequestConditions) {
this.destinationRequestConditions = destinationRequestConditions;
return this;
}
/**
* @return {@link BlobRequestConditions} for accessing source.
*/
public BlobRequestConditions getSourceRequestConditions() {
return sourceRequestConditions;
}
/**
* @param sourceRequestConditions {@link BlobRequestConditions} for accessing source.
* @return The updated options.
*/
public AppendBlobAppendBlockFromUrlOptions setSourceRequestConditions(BlobRequestConditions sourceRequestConditions) {
this.sourceRequestConditions = sourceRequestConditions;
return this;
}
/**
* @return auth header for accessing source.
*/
public HttpAuthorization getSourceAuthorization() {
return sourceAuthorization;
}
/**
* Sets "Authorization" header for accessing source URL. Currently only "Bearer" authentication is accepted by
* Storage.
*
* @param sourceAuthorization auth header for accessing source.
* @return The updated options.
*/
public AppendBlobAppendBlockFromUrlOptions setSourceAuthorization(HttpAuthorization sourceAuthorization) {
this.sourceAuthorization = sourceAuthorization;
return this;
}
}