将列表<string>存储到SQL数据库表中?

时间:2016-08-24 11:57:58

标签: c# mysql azure azure-storage-blobs

我想在Microsoft Azure中查找存储帐户,列出特定容器(存储帐户)中的blob,然后将列出的blob名称存储到数据库表中。任何人都建议使用c#代码将blob名称列表存储到数据库表中。

namespace ListStorageAccntFiles
{
    class Program
    {            
        static void Main(string[] args)
        {
            Console.Clear();

            //Code to list the blobnames in Console

            CloudStorageAccount StorageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
            var BlobClient = StorageAccount.CreateCloudBlobClient();
            var Container = BlobClient.GetContainerReference("samples-workitems");
            var list = Container.ListBlobs();

            List<string> blobNames = list.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
            blobNames.ForEach(Console.WriteLine);

            //Code to store blobnames under the column header "name" in a database table
         }
     }
}

3 个答案:

答案 0 :(得分:1)

  

与场景!!!!可以查看存储帐户并处理所有新帐户的程序修改过的文件并在有新文件时采取行动

在我看来,我建议使用WebJobs SDK的BlobTrigger来达到你的目的。这是我的代码示例,让你更好地理解它:

WebJob类

public class Functions
{
    //This function will get triggered/executed when a blob is created or updated on an Azure Blob container called trigger-blob-input.
    public static void TriggerAzureBlob([BlobTrigger("trigger-blob-input/{name}")] ICloudBlob blob)
    {
        Console.WriteLine("Blob name:" + blob.Name);
        //do something with the created/updated blob
    }
}

创建/更新blob时如下:

1

您可以通过BlobTrigger检测blob并获得以下输出:

2

有关详细信息,请参阅以下教程:

how to create a WebJob and deploy it to Azure

how to trigger a function when a blob is created or updated

此外,WebJobs SDK扫描日志文件以监视新的或更改的blob。此过程不是读取时间,因此在创建/更新blob后,可能不会在短时间或更长时间内触发函数。

如果blob触发器的限制不符合您的应用程序,您可以在创建/更新blob时创建队列消息,然后在处理blob的函数上使用QueueTrigger而不是BlobTrigger。

答案 1 :(得分:0)

我认为您可以将值存储为逗号分隔的String。在C#中检索值时,可以拆分(“,”)以将值作为Array获取。 [在java中,string split方法返回数组。不确定c#]

如果您认为您的值中包含逗号,请在逗号处使用其他字符。

答案 2 :(得分:0)

继续使用您的代码。添加此行将其转换为分隔字符串

$fileName = 'xpto.pdf';
$driveService = new Google_Service_Drive($client);
$content = $driveService->files->get($fileId, array(
    'alt' => 'media'));

$headers = $content->getHeaders();
foreach ($headers as $name => $values) {
    header($name . ': ' . implode(', ', $values));
}
header('Content-Disposition: attachment; filename="' . $fileName . '"');
echo $content->getBody();
exit;

例如,您可以使用&#39;:&#39;作为你的分隔符

现在您可以轻松地将此字符串存储在表格中。为了在父数据更改的情况下更新此数据,您可以按索引更新它(原始集合中的对象索引