【问题标题】:upload to S3 with BOM使用 BOM 上传到 S3
【发布时间】:2016-10-24 13:08:01
【问题描述】:

我想用 BOM 上传文件到 S3。我该怎么做?

var transferUtility = new TransferUtility(client);

string content = "hello";
byte[] b = DefaultEncoding.GetBytes(content);

using (var fileStream = new MemoryStream(b))

{        
   var request = new TransferUtilityUploadRequest                                
   {                                    
      BucketName = bucket,                                    
      InputStream = fileStream,                                    
      Key = NormalizePath(Path.Combine(folder, file.Name)),                                
   };
}

transferUtility.Upload(request);

当我从 S3 下载文件时,它是 UTF-8,而不是 UTF-8-BOM

【问题讨论】:

  • 请详细说明。你的意思是你有一个带有 BOM 的文本文件,并且你想上传它?然后上传它。您的意思是您有一个没有 BOM 的文本文件,并且想像有 BOM 一样上传它吗?然后添加一个并上传。另外,你是不是编了一个内容编码?那条线应该做什么?
  • 我稍微修改了代码。我想上传有 BOM 的文件。
  • 那么您想在运行时添加 BOM 吗?
  • 据我所知,当我执行此操作“DefaultEncoding.GetBytes”时,我是否将 BOM 添加到我的字节 [] b 中?但是,是的,我有内容“你好”,我想上传包含此内容的文件,并且文件必须有 BOM
  • 不,您可以使用 Encoding.GetPreamble() 获取 BOM 字节。

标签: encoding amazon-s3 upload


【解决方案1】:
var transferUtility = new TransferUtility(client);

string content = "hello";
byte[] b = Encoding.UTF8.GetPreamble().Concat(DefaultEncoding.GetBytes(content)).ToArray();

using (var fileStream = new MemoryStream(b))

{        
   var request = new TransferUtilityUploadRequest                                
   {                                    
      BucketName = bucket,                                    
      InputStream = fileStream,                                    
      Key = NormalizePath(Path.Combine(folder, file.Name)),                                
   };
}

transferUtility.Upload(request);

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 1970-01-01
    • 2011-06-01
    • 2011-08-29
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多