C# Class azurecopy.FileSystemHandler

Inheritance: IBlobHandler
Show file Open project: kpfaulkner/azurecopy Class Usage Examples

Public Methods

Method Description
FileSystemHandler ( string url ) : System
GetBaseUrl ( ) : string
GetBlobNameFromUrl ( string url ) : string

Gets blob name from the full url. This is cloud specific.

GetContainerNameFromUrl ( string url ) : string

Gets container name from the full url. url will be something like: c:\temp\myfile.txt or c:\temp\temp2\myfile.txt In these cases the blob will be called "myfile.txt" and the container would be temp or temp\temp2 Need to figure out if this should just be a single string OR a collection of strings?

ListBlobsInContainer ( string containerName = null, string blobPrefix = null, bool debug = false ) : IEnumerable

Lists all blobs in a container. Can be supplied a blobPrefix which basically acts as virtual directory options. eg, if we have blobs called: "virt1/virt2/myblob" and "virt1/virt2/myblob2" Although the blob names are the complete strings mentioned above, we might like to think that the blobs are just called myblob and myblob2. We can supply a blobPrefix of "virt1/virt2/" which we can *think* of as a directory, but again, its just really a prefix behind the scenes. For other sytems (not Azure) the blobPrefix might be real directories.... will need to investigate

ListContainers ( string root ) : List

List containers/directories off the root. For storage schemes that allow real directories maybe the root will be

MakeContainer ( string containerName ) : void

Make container/directory (depending on platform). For local filesystem the containername is really a full path.

MoveBlob ( string originContainer, string destinationContainer, string startBlobname ) : void

Move blob

OverrideConfiguration ( string>.Dictionary configuration ) : void
ReadBlob ( string containerName, string blobName, string cacheFilePath = "" ) : Blob

Read blob. For filesystem the containerName is really just the full path directory. The blobName is the filename.

WriteBlob ( string containerName, string blobName, Blob blob, int parallelUploadFactor = 1, int chunkSizeInMB = 4 ) : void

Write blob For FS the containerName is just the full path (excluding filename). Need to create directories where appropriate.

Method Details

FileSystemHandler() public method

public FileSystemHandler ( string url ) : System
url string
return System

GetBaseUrl() public method

public GetBaseUrl ( ) : string
return string

GetBlobNameFromUrl() public method

Gets blob name from the full url. This is cloud specific.
public GetBlobNameFromUrl ( string url ) : string
url string
return string

GetContainerNameFromUrl() public method

Gets container name from the full url. url will be something like: c:\temp\myfile.txt or c:\temp\temp2\myfile.txt In these cases the blob will be called "myfile.txt" and the container would be temp or temp\temp2 Need to figure out if this should just be a single string OR a collection of strings?
public GetContainerNameFromUrl ( string url ) : string
url string
return string

ListBlobsInContainer() public method

Lists all blobs in a container. Can be supplied a blobPrefix which basically acts as virtual directory options. eg, if we have blobs called: "virt1/virt2/myblob" and "virt1/virt2/myblob2" Although the blob names are the complete strings mentioned above, we might like to think that the blobs are just called myblob and myblob2. We can supply a blobPrefix of "virt1/virt2/" which we can *think* of as a directory, but again, its just really a prefix behind the scenes. For other sytems (not Azure) the blobPrefix might be real directories.... will need to investigate
public ListBlobsInContainer ( string containerName = null, string blobPrefix = null, bool debug = false ) : IEnumerable
containerName string
blobPrefix string
debug bool
return IEnumerable

ListContainers() public method

List containers/directories off the root. For storage schemes that allow real directories maybe the root will be
public ListContainers ( string root ) : List
root string
return List

MakeContainer() public method

Make container/directory (depending on platform). For local filesystem the containername is really a full path.
public MakeContainer ( string containerName ) : void
containerName string
return void

MoveBlob() public method

Move blob
public MoveBlob ( string originContainer, string destinationContainer, string startBlobname ) : void
originContainer string
destinationContainer string
startBlobname string
return void

OverrideConfiguration() public method

public OverrideConfiguration ( string>.Dictionary configuration ) : void
configuration string>.Dictionary
return void

ReadBlob() public method

Read blob. For filesystem the containerName is really just the full path directory. The blobName is the filename.
public ReadBlob ( string containerName, string blobName, string cacheFilePath = "" ) : Blob
containerName string
blobName string
cacheFilePath string
return Blob

WriteBlob() public method

Write blob For FS the containerName is just the full path (excluding filename). Need to create directories where appropriate.
public WriteBlob ( string containerName, string blobName, Blob blob, int parallelUploadFactor = 1, int chunkSizeInMB = 4 ) : void
containerName string
blobName string
blob Blob
parallelUploadFactor int
chunkSizeInMB int
return void