本文整理汇总了C#中net.openstack.Providers.Rackspace.CloudFilesProvider.CreateObjectFromFile方法的典型用法代码示例。如果您正苦于以下问题:C# CloudFilesProvider.CreateObjectFromFile方法的具体用法?C# CloudFilesProvider.CreateObjectFromFile怎么用?C# CloudFilesProvider.CreateObjectFromFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.openstack.Providers.Rackspace.CloudFilesProvider
的用法示例。
在下文中一共展示了CloudFilesProvider.CreateObjectFromFile方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CFProvidersCreateObjectFromFile
protected void CFProvidersCreateObjectFromFile(string cfcontainername, string cfcreateobjfilepath, string cfcreateobjfilename, int cfcreateobjchunksize, string dcregion, bool dcsnet = true)
{
var identity = new RackspaceCloudIdentity() { Username = CFUsernameText.Text, APIKey = CFApiKeyText.Text };
CloudIdentityProvider identityProvider = new net.openstack.Providers.Rackspace.CloudIdentityProvider(identity);
CloudFilesProvider CloudFilesProvider = new net.openstack.Providers.Rackspace.CloudFilesProvider(identity);
CloudFilesProvider.CreateObjectFromFile(cfcontainername, cfcreateobjfilepath, cfcreateobjfilename, cfcreateobjchunksize, null, dcregion, null, dcsnet);
}
示例2: Main
static void Main(string[] args)
{
Console.WriteLine();
if (ParseArguments(args))
{
DirectoryInfo directory = null;
try
{
directory = new DirectoryInfo(Source);
if (!directory.Exists)
{
throw new Exception(String.Format("Source directory does not exist\n{0}", Source));
}
}
catch (Exception ex)
{
PrintException(ex);
}
Console.WriteLine(String.Format("Source directory: {0}", Source));
Console.WriteLine(String.Format("Destination container: {0}", Container));
Console.WriteLine("Logging in...");
Console.WriteLine();
if (Login())
{
var cloudFiles = new CloudFilesProvider(auth);
try
{
switch (cloudFiles.CreateContainer(Container))
{
case ObjectStore.ContainerCreated:
case ObjectStore.ContainerExists:
foreach (var file in directory.GetFiles())
{
Console.WriteLine(String.Format("{0,3:0}% Uploading: {1}", 0, file.Name));
cloudFiles.CreateObjectFromFile(Container, file.FullName, progressUpdated: delegate(long p)
{
Console.SetCursorPosition(0, Console.CursorTop -1);
Console.WriteLine(String.Format("{0,3:0}% Uploading: {1}", ((float)p / (float)file.Length) * 100, file.Name));
});
}
break;
default:
throw new Exception(String.Format("Unknown error when creating container {0}", Container));
}
}
catch (Exception ex)
{
PrintException(ex);
}
}
}
Console.WriteLine();
Console.Write("Press any key to exit");
Console.ReadKey();
}
示例3: Should_Create_Object_From_File_With_Headers
public void Should_Create_Object_From_File_With_Headers()
{
string filePath = Path.Combine(Directory.GetCurrentDirectory(), objectName);
string fileName = Path.GetFileName(filePath);
Stream stream = System.IO.File.OpenRead(filePath);
var etag = GetMD5Hash(filePath);
stream.Position = 0;
var headers = new Dictionary<string, string>();
headers.Add("ETag", etag);
int cnt = 0;
var info = new FileInfo(filePath);
var totalBytest = info.Length;
var provider = new CloudFilesProvider(_testIdentity);
provider.CreateObjectFromFile(containerName, filePath, fileName, 65536, headers, null, (bytesWritten) =>
{
cnt = cnt + 1;
if (cnt % 10 != 0)
return;
var x = (float)bytesWritten / (float)totalBytest;
var percentCompleted = (float)x * 100.00;
Console.WriteLine(string.Format("{0:0.00} % Completed (Writen: {1} of {2})", percentCompleted, bytesWritten, totalBytest));
});
var containerGetObjectsResponse = provider.ListObjects(containerName, identity: _testIdentity);
Assert.AreEqual(fileName, containerGetObjectsResponse.Where(x => x.Name.Equals(fileName, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault().Name);
var objectHeadersResponse = provider.GetObjectHeaders(containerName, fileName, identity: _testIdentity);
Assert.IsNotNull(objectHeadersResponse);
Assert.AreEqual(etag, objectHeadersResponse.Where(x => x.Key.Equals("ETag", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault().Value);
}
示例4: Should_Create_Object_From_File_Without_Headers
public void Should_Create_Object_From_File_Without_Headers()
{
string filePath = Path.Combine(Directory.GetCurrentDirectory(), objectName);
string fileName = Path.GetFileName(filePath);
var headers = new Dictionary<string, string>();
var provider = new CloudFilesProvider(_testIdentity);
provider.CreateObjectFromFile(containerName, filePath, fileName, 65536, headers, identity: _testIdentity);
var containerGetObjectsResponse = provider.ListObjects(containerName, identity: _testIdentity);
Assert.AreEqual(fileName, containerGetObjectsResponse.Where(x => x.Name.Equals(fileName, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault().Name);
}
示例5: UploadToRackSpaceCloudFiles
public bool UploadToRackSpaceCloudFiles()
{
bool syncSucceeded = true;
try
{
var cloudIdentity = new CloudIdentity() { APIKey = this.apiKey, Username = this.username };
var cloudFilesProvider = new CloudFilesProvider(cloudIdentity);
List<string> fileList = AmazonS3Helper.ListFiles(localSource);
foreach (string file in fileList)
{
cloudFilesProvider.CreateObjectFromFile(container, file, Path.GetFileName(file));
// assuming this overwrites file if it exists.
}
}
catch (Exception e)
{
Console.WriteLine("Exception in uploading to rackspace: "+e);
syncSucceeded = false;
}
return syncSucceeded;
}
示例6: Should_Upload_File_In_Segments
public void Should_Upload_File_In_Segments()
{
var provider = new CloudFilesProvider(_testIdentity);
string filePath = Path.Combine(Directory.GetCurrentDirectory(), objectName);
provider.CreateObjectFromFile(containerName2, filePath);
var objects = provider.ListObjects(containerName2).ToArray();
Assert.AreEqual(12, objects.Count());
Assert.IsTrue(objects.Any(o => o.Name.Equals(objectName)));
for (int i = 0; i < 11; i++)
{
Assert.IsTrue(objects.Any(o => o.Name.Equals(string.Format("{0}.seg{1}", objectName, i.ToString("0000")))));
}
}
示例7: Main
public static void Main(string[] args)
{
Boolean containerExists = false;
if (args.Length < 4 || args.Length > 5)
{
Console.WriteLine("Usage: {0} username api_key target_container path_to_file [region (US|UK)]", Environment.CommandLine);
Environment.Exit(1);
}
RackspaceCloudIdentity auth = new RackspaceCloudIdentity();
IEnumerable<Container> containerList = null;
auth.Username = args[0];
auth.APIKey = args[1];
targetContainer = args[2];
filePath = args[3];
if (args.Length == 5)
{
if (args[4] != "UK" && args[4] != "US")
{
Console.WriteLine("region must be either US or UK", Environment.CommandLine);
Environment.Exit(1);
}
switch (args[4])
{
case "UK": {auth.CloudInstance = CloudInstance.UK;};break;
case "US": { auth.CloudInstance = CloudInstance.Default;}; break;
}
}
try
{
IIdentityProvider identityProvider = new CloudIdentityProvider();
var userAccess = identityProvider.Authenticate(auth);
}
catch (ResponseException ex2)
{
Console.WriteLine("Authentication failed with the following message: {0}",ex2.Message);
Environment.Exit(1);
}
try
{
var cloudFilesProvider = new CloudFilesProvider(auth);
containerList = cloudFilesProvider.ListContainers();
foreach (Container container in containerList)
{
if (container.Name == targetContainer)
{
containerExists = true;
break;
}
}
if (!containerExists)
{
Console.WriteLine("Container \"{0}\" does not exist on the provided CloudFiles account.", targetContainer);
Environment.Exit(1);
}
if (!File.Exists(filePath))
{
Console.WriteLine("The file specified ({0}) does not exist", filePath);
Environment.Exit(1);
}
cloudFilesProvider.CreateObjectFromFile(targetContainer, @filePath, Path.GetFileName(filePath));
}
catch (Exception ex2)
{
Console.WriteLine(ex2.Message);
Environment.Exit(1);
}
Console.WriteLine("*SUCCESS* File: \"{0}\" uploaded to \"{1}\"", filePath, targetContainer);
}
示例8: UploadObject
private void UploadObject(CloudIdentity cloudIdentity, string container, string objectname, string filename) {
var provider = new CloudFilesProvider(cloudIdentity);
provider.CreateObjectFromFile(container: container, filePath: filename, objectName: objectname, progressUpdated: ProgressCallback);
}
示例9: TestCreateLargeObject
public void TestCreateLargeObject()
{
IObjectStorageProvider provider =
new CloudFilesProvider(Bootstrapper.Settings.TestIdentity)
{
LargeFileBatchThreshold = 81920
};
string containerName = TestContainerPrefix + Path.GetRandomFileName();
string sourceFileName = "DarkKnightRises.jpg";
byte[] content = File.ReadAllBytes("DarkKnightRises.jpg");
ObjectStore containerResult = provider.CreateContainer(containerName);
Assert.AreEqual(ObjectStore.ContainerCreated, containerResult);
ProgressMonitor progressMonitor = new ProgressMonitor(content.Length);
provider.CreateObjectFromFile(containerName, sourceFileName, progressUpdated: progressMonitor.Updated);
Assert.IsTrue(progressMonitor.IsComplete, "Failed to notify progress monitor callback of status update.");
using (MemoryStream downloadStream = new MemoryStream())
{
provider.GetObject(containerName, sourceFileName, downloadStream);
Assert.AreEqual(content.Length, GetContainerObjectSize(provider, containerName, sourceFileName));
downloadStream.Position = 0;
byte[] actualData = new byte[downloadStream.Length];
downloadStream.Read(actualData, 0, actualData.Length);
Assert.AreEqual(content.Length, actualData.Length);
using (MD5 md5 = MD5.Create())
{
byte[] contentMd5 = md5.ComputeHash(content);
byte[] actualMd5 = md5.ComputeHash(actualData);
Assert.AreEqual(BitConverter.ToString(contentMd5), BitConverter.ToString(actualMd5));
}
}
/* Cleanup
*/
provider.DeleteContainer(containerName, deleteObjects: true);
}
示例10: TestCreateObjectFromFile_UseCustomObjectName
public void TestCreateObjectFromFile_UseCustomObjectName()
{
IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity);
string containerName = TestContainerPrefix + Path.GetRandomFileName();
string objectName = Path.GetRandomFileName();
// another random name counts as random content
string fileData = Path.GetRandomFileName();
string tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
ObjectStore containerResult = provider.CreateContainer(containerName);
Assert.AreEqual(ObjectStore.ContainerCreated, containerResult);
try
{
File.WriteAllText(tempFilePath, fileData, Encoding.UTF8);
provider.CreateObjectFromFile(containerName, tempFilePath, objectName);
// it's ok to create the same file twice
ProgressMonitor progressMonitor = new ProgressMonitor(new FileInfo(tempFilePath).Length);
provider.CreateObjectFromFile(containerName, tempFilePath, objectName, progressUpdated: progressMonitor.Updated);
Assert.IsTrue(progressMonitor.IsComplete, "Failed to notify progress monitor callback of status update.");
}
finally
{
File.Delete(tempFilePath);
}
string actualData = ReadAllObjectText(provider, containerName, objectName, Encoding.UTF8);
Assert.AreEqual(fileData, actualData);
/* Cleanup
*/
provider.DeleteContainer(containerName, deleteObjects: true);
}
示例11: Should_Create_Object_From_File_With_Headers
public void Should_Create_Object_From_File_With_Headers()
{
string filePath = Path.Combine(Directory.GetCurrentDirectory(), objectName);
var etag = GetMD5Hash(filePath);
var headers = new Dictionary<string, string> {{"ETag", etag}};
var provider = new CloudFilesProvider(_testIdentity);
provider.CreateObjectFromFile(containerName, filePath, objectName, headers: headers);
var containerGetObjectsResponse = provider.ListObjects(containerName, identity: _testIdentity);
Assert.AreEqual(objectName, containerGetObjectsResponse.Where(x => x.Name.Equals(objectName, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault().Name);
var objectHeadersResponse = provider.GetObjectHeaders(containerName, objectName, identity: _testIdentity);
Assert.IsNotNull(objectHeadersResponse);
Assert.AreEqual(etag, objectHeadersResponse.Where(x => x.Key.Equals("ETag", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault().Value);
}