Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AmazonS3选择从S3 Bucket中的.csv文件返回垃圾数据(使用.NETSDK)_C#_.net_Amazon S3_Amazon S3 Select - Fatal编程技术网

C# AmazonS3选择从S3 Bucket中的.csv文件返回垃圾数据(使用.NETSDK)

C# AmazonS3选择从S3 Bucket中的.csv文件返回垃圾数据(使用.NETSDK),c#,.net,amazon-s3,amazon-s3-select,C#,.net,Amazon S3,Amazon S3 Select,下面是AWS中我的状态机的两个方法 首先,使用S3 SELECT从csv文件获取数据的方法 /// <summary> /// Use S3 Select in order to obtain the data from the source and return it /// </summary> /// <param name="s3Object"></param> /// <param name="s3Client"></p

下面是AWS中我的状态机的两个方法

首先,使用S3 SELECT从csv文件获取数据的方法

/// <summary>
/// Use S3 Select in order to obtain the data from the source and return it
/// </summary>
/// <param name="s3Object"></param>
/// <param name="s3Client"></param>
/// <param name="definition"></param>
/// <returns></returns>
private static async Task<ISelectObjectContentEventStream> GetSelectObjectContentEventStream(S3Object s3Object,
    AmazonS3Client s3Client, ObjectDefinition definition)
{
    var response = await s3Client.SelectObjectContentAsync(new SelectObjectContentRequest()
    {
        Bucket = s3Object.BucketName,
        Key = s3Object.Key,
        ExpressionType = ExpressionType.SQL,
        Expression = "select * from S3Object",
        InputSerialization = new InputSerialization()
        {
            CSV = new CSVInput()
            {
                FileHeaderInfo = FileHeaderInfo.Ignore,
                FieldDelimiter = ",",
            }
        },
        OutputSerialization = new OutputSerialization()
        {
            JSON = new JSONOutput()
        }
    });

    return response.Payload;
}

我想可能是编码吧

写这行:

using (var reader = new StreamReader(records.Payload))
像这样:

using (var reader = new StreamReader(records.Payload, System.Text.Encoding.UTF8))

我想可能是编码吧

写这行:

using (var reader = new StreamReader(records.Payload))
像这样:

using (var reader = new StreamReader(records.Payload, System.Text.Encoding.UTF8))

谢谢你的建议,但我已经尝试了两种方法,没有改变。我已经能够以CSV的形式返回结果输出。没有问题,有些问题,但是不同的问题,但是在任何情况下都无法让JSON输出正常工作。我在我的另一个问题周围发布了一个不同的SO问题。我在这里发布的另一个问题->我在用C阅读JSON时也遇到了问题,尽管有不同的问题,是的-到目前为止,在线帮助太少了。很抱歉,这不是你的问题。没关系,我很高兴我们中的一些人正在努力解决这个问题。出于好奇,当你说用C阅读JSON有问题时——你是在AWS S3 SELECT的上下文中说的吗?还是一般?如果是后者,我可能会提供帮助。希望随着时间的推移,社区能够积累更多关于S3 SELECT的信息。为此,我将放弃使用它,转而使用GenericParser之类的工具来处理CSV数据。我使用AWS S3 SELECT并可以返回整个文档,但如果我从S3Object更改我的SELECT*,我会得到一个错误或{}。所以我查询的JSON不是典型的一个文档就是一个JSON对象,或者是我不了解S3 SELECT命令来查找我要查找的属性值。我是黑客,我精通SQL Server/ETL,所以我99%肯定是我。谢谢你的建议,但我已经尝试了两种方法,没有任何改变。我已经能够以CSV的形式返回结果输出。没有问题,有些问题,但是不同的问题,但是在任何情况下都无法让JSON输出正常工作。我在我的另一个问题周围发布了一个不同的SO问题。我在这里发布的另一个问题->我在用C阅读JSON时也遇到了问题,尽管有不同的问题,是的-到目前为止,在线帮助太少了。很抱歉,这不是你的问题。没关系,我很高兴我们中的一些人正在努力解决这个问题。出于好奇,当你说用C阅读JSON有问题时——你是在AWS S3 SELECT的上下文中说的吗?还是一般?如果是后者,我可能会提供帮助。希望随着时间的推移,社区能够积累更多关于S3 SELECT的信息。为此,我将放弃使用它,转而使用GenericParser之类的工具来处理CSV数据。我使用AWS S3 SELECT并可以返回整个文档,但如果我从S3Object更改我的SELECT*,我会得到一个错误或{}。所以我查询的JSON不是典型的一个文档就是一个JSON对象,或者是我不了解S3 SELECT命令来查找我要查找的属性值。我是黑客,我精通SQL Server/ETL,所以我99%肯定是我。