Importing a CSV file into Amazon SimpleDB
Console.WriteLine("Connecting to Amazon Simple DB");
NameValueCollection appConfig = ConfigurationManager.AppSettings;
AmazonSimpleDB sdb = AWSClientFactory.CreateAmazonSimpleDBClient(
appConfig["AWSAccessKey"],
appConfig["AWSSecretKey"]
);
// Setup Flights DataStore
String domainName = "CSV";
CreateDomainRequest createDomain = (new CreateDomainRequest()).WithDomainName(domainName);
sdb.CreateDomain(createDomain);
Console.WriteLine("Created flights DB on Amazon");
string strCSVFile = @"C:MyFile.csv";
FileStream fsCSV = new FileStream(strCSVFile, FileMode.Open, FileAccess.Read);
StreamReader srCSV = new StreamReader(fsCSV);
string strHeaderLine = srCSV.ReadLine();
string[] strHeaders = Regex.Split(strHeaderLine, ",");
// Remove Inverted Commas
for (int i = 0; i < strHeaders.Length; i++)
{
strHeaders[i] = strHeaders[i].Replace(""", "");
}
Console.WriteLine("Read column headers");
string strDataLine = srCSV.ReadLine();
while(!string.IsNullOrEmpty(strDataLine))
{
string[] strData = Regex.Split(strDataLine, ",");
if (strData.Length < strHeaders.Length) continue;
strDataLine = srCSV.ReadLine();
PutAttributesRequest putAttributesAction = new PutAttributesRequest().WithDomainName(domainName).WithItemName(Guid.NewGuid().ToString());
List<ReplaceableAttribute> attributes = putAttributesAction.Attribute;
for (int i = 0; i < strHeaders.Length-1; i++)
{
strData[i] = strData[i].Replace(""", "");
attributes.Add(new ReplaceableAttribute().WithName(strHeaders[i]).WithValue(strData[i]));
}
sdb.PutAttributes(putAttributesAction);
Console.WriteLine(strDataLine);
}