S3选择使用标题并获得结果

时间:2019-12-15 04:59:35

标签: amazon-web-services amazon-s3 aws-sdk aws-sdk-net

S3 Select具有FileHeaderInfo.Use选项以在查询中使用标题。但是,如果使用该选项,则会从结果内容中删除标题。

在使用FileHeaderInfo.Use选项时,是否还有一种方法可以在结果中获取标头?或者,我需要提出2个请求

  1. 首先获取带有选项-FileHeaderInfo.NoneSelect * from S3Object s LIMIT 1)的标题
  2. 然后第二个获取内容的请求-FileHeaderInfo.UseSelect * from S3Object s Where created_date = '12152019' LIMIT 100

using (IAmazonS3 client = new AmazonS3Client(awsAccessKey, awsSecretKey, RegionEndpoint.USEast1))
	{
		var response = await client.SelectObjectContentAsync(new SelectObjectContentRequest()
		{
			Bucket = "s3-bucket",
			Key = "s3-select-test/test1.txt.gz",
			ExpressionType = Amazon.S3.ExpressionType.SQL,
			Expression = "Select * from S3Object s Where created_date = '12152019' LIMIT 100",
			InputSerialization = new InputSerialization()
			{
				CompressionType = CompressionType.Gzip,
				CSV = new CSVInput()
				{
					FileHeaderInfo = FileHeaderInfo.Use,
				}
			},
			OutputSerialization = new OutputSerialization()
			{
				CSV = new CSVOutput()
				{
					QuoteFields = QuoteFields.Always
				}
			}
		});

		foreach (var line in response.Payload)
		{
			if (line is RecordsEvent records)
			{
				using (var reader = new StreamReader(records.Payload, Encoding.UTF8))
				{
					Console.WriteLine(reader.ReadToEnd());
				}
			}
		}
	}

0 个答案:

没有答案
相关问题