xmlファイルをAmazonS3サーバーにアップロードしようとしています。ルビーの私のコードは次のようになります:-
AWS::S3::S3Object.store("dir/data.xml",
"#{xml.target!}",
"bucket",
:access => :private,
:content_type => 'text/xml')
xmlはRSSフィードファイルです。アップロードしたファイルをサーバーからダウンロードすると、ファイルの最後の行が欠落しています。
</rss>
オプションのパラメーターcontent-typeを削除しても、出力には影響しません。ただし、データコンポーネントを変更して追加の文字を挿入すると、欠落している文字が正しく表示されます。
AWS::S3::S3Object.store("dir/data.xml",
"#{xml.target!} ",
"bucket",
:access => :private,
:content_type => 'text/xml')
これで問題は解決しましたが、本番環境でこのコードを使用するのは少し気が進まないです。また、何が悪いのか知りたいのですが?
実際のところ、ローカルマシン上のファイルに書き込むと、正しく機能します。
file = File.new("/path/feed.xml", "w")
file.write(xml.target!)
file.close
更新:csvファイルのアップロード中にも同じ問題が発生します。非常に大きなファイルの場合、さらに多くのデータが切り捨てられることに気付きました。xmlファイルの場合、終了rssタグだけでなく、他のいくつかのタグも欠落しています。csvファイルについても同様です。これらを解決するにはどうすればよいですか?