AWS S3 .csv文件为空

时间:2018-08-17 07:24:15

标签: c# amazon-web-services amazon-s3 amazon-ec2 bucket

在AWS S3存储桶上创建.csv文件时遇到问题。我已经尝试了PutObjectRequest和TransferUtility库。

我认为这就是我写入csvText.csv文件的方式。数据写在内存中,因此我无法将数据物理存储在服务器上的文件中。

问题:文件(userData.csv)已创建,但不包含任何数据。

当我在PC上本地运行此应用程序时,它将在S3中创建并填充文件。但不是通过AWS URL调用应用程序,而是创建了文件,但没有在csv中填充任何数据。

环境和工作流程: 我的.NET Web应用程序(GatherUserData)位于EC2实例上,该实例由第三方应用程序(CS)的CreateUser()方法调用。

然后我的应用程序通过GET请求调用(CS)。 GETS用户数据,然后创建一个CSV文件并将其放在S3存储桶中。

我的代码:

public string ExportUserDataCSVFile(GetUserData userData)
    {
        csvText = new StringBuilder();
        try
        {
            Data1.Customfield[] customeFields = userData.data.customFields;
            if (userData != null)
            {
                //header
                csvText.AppendLine(GetSingleUserCSVHeader());

                //UserID
                csvText.Append(userData.data.userId);
            }
        catch (Exception e)

        {
            Console.WriteLine(e.Message);
        }

        return csvText.ToString();

}

CreateCsvInAws类:

public static void CreateCsvInAws(string csvText)
    {


        try
        {

            MemoryStream ms = new MemoryStream();
            BinaryWriter bw = new BinaryWriter(ms);
            bw.Write(csvText.ToCharArray());
            bw.Flush();
            bw.Close();

s3Client =新的AWSClient();

                PutObjectRequest pr = new PutObjectRequest

            {

                BucketName = bucketName,
                Key = keyName,
                ContentBody = csvText, {I can see the user data here, but it doesn't get written to the file}
                ContentType = "application/octet-stream",
                CannedACL = "bucket-owner-full-control"
            };

            PutObjectResponse response = s3Client.PutObject(pr);
        }
        catch (AmazonS3Exception e)
        {
            Console.WriteLine("Error encountered '{0}' when writing");
        }
        catch (Exception e)
        {
            Console.WriteLine("unknown error '{0}' again");
        }

    }

0 个答案:

没有答案