microsoft-azure-storage/src/com/microsoft/azure/storage/file/CloudFile.java
@DoesServiceRequest
    public final String startCopy(final CloudBlob sourceBlob, final AccessCondition sourceAccessCondition,
            final AccessCondition destinationAccessCondition, FileRequestOptions options, OperationContext opContext)
            throws StorageException, URISyntaxException {
        Utility.assertNotNull("sourceBlob", sourceBlob);

        URI source = sourceBlob.getSnapshotQualifiedUri();
        if (sourceBlob.getServiceClient() != null && sourceBlob.getServiceClient().getCredentials() != null)
        {
            source = sourceBlob.getServiceClient().getCredentials().transformUri(sourceBlob.getSnapshotQualifiedUri());
        }

        return this.startCopy(source, sourceAccessCondition, destinationAccessCondition, options, opContext);
    }
@DoesServiceRequest
    public final String startCopy(final CloudBlob sourceBlob, final AccessCondition sourceAccessCondition,
            final AccessCondition destinationAccessCondition, FileRequestOptions options, OperationContext opContext)
            throws StorageException, URISyntaxException {
        Utility.assertNotNull("sourceBlob", sourceBlob);

        URI source = sourceBlob.getSnapshotQualifiedUri();
        if (sourceBlob.getServiceClient() != null && sourceBlob.getServiceClient().getCredentials() != null)
        {
            source = sourceBlob.getServiceClient().getCredentials().transformUri(sourceBlob.getSnapshotQualifiedUri());
        }

        return this.startCopy(source, sourceAccessCondition, destinationAccessCondition, options, opContext);
    }
@ DoesServiceRequest public final String startCopy ( final CloudBlob sourceBlob , final AccessCondition sourceAccessCondition , final AccessCondition destinationAccessCondition , FileRequestOptions options , OperationContext opContext ) throws StorageException , URISyntaxException { Utility . assertNotNull ( "sourceBlob" , sourceBlob ) ; URI source = sourceBlob . getSnapshotQualifiedUri ( ) ; if ( sourceBlob . getServiceClient ( ) != null && sourceBlob . getServiceClient ( ) . getCredentials ( ) != null ) { source = sourceBlob . getServiceClient ( ) . getCredentials ( ) . transformUri ( sourceBlob . getSnapshotQualifiedUri ( ) ) ; } return this . startCopy ( source , sourceAccessCondition , destinationAccessCondition , options , opContext ) ; }
Requests the service to start copying a file's contents, properties, and metadata to a new file,
using the specified access conditions, lease ID, request options, and operation context.

@param sourceBlob
A <code>CloudBlob</code> object that represents the source blob to copy.
@param sourceAccessCondition
An {@link AccessCondition} object that represents the access conditions for the source blob.
@param destinationAccessCondition
An {@link AccessCondition} object that represents the access conditions for the destination file.
@param options
A {@link BlobRequestOptions} object that specifies any additional options for the request.
Specifying <code>null</code> will use the default request options from the associated
service client ({@link CloudBlobClient}).
@param opContext
An {@link OperationContext} object that represents the context for the current operation.
This object is used to track requests to the storage service, and to provide additional
runtime information about the operation.

@return A <code>String</code> which represents the copy ID associated with the copy operation.

@throws StorageException
If a storage service error occurred.
@throws URISyntaxException
Requests the service to start copying a file s contents properties and metadata to a new file using the specified access conditions lease ID request options and operation context .