我有一个奇怪的问题,我似乎无法绕过。
我有一个gzip文件,可以使用gsutil工具轻松上传到我的Firebase存储桶:
gsutil -h“Content-Encoding:gzip”-h“Content-Type:application / json” cp myGzipFileWithoutGzExtension.json gs://my-bucket-name.appspot.com
该文件作为普通的json文件启动,压缩为32kb。
现在我想在我的c#console应用程序中执行相同的操作。但是当我上传到相同的网址时,Firebase存储会移除压缩,文件最终会大约400kb(删除的空格等)?!?!
var url = "https://firebasestorage.googleapis.com/v0/b/my-bucket-name.appspot.com/o?name=myGzipFileWithoutGzExtension.json"
var stream = File.Open(@"C:\temp\myGzipFileWithoutGzExtension.json ", FileMode.Open);
using (var client = new HttpClient())
{
var streamContent = new StreamContent(stream);
streamContent.Headers.Add("Content-Encoding", "gzip");
streamContent.Headers.Add("Content-Type", "application/json");
streamContent.Headers.ContentLength = stream.Length;
var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = streamContent,
};
var response = await client.SendAsync(request, cancellationToken).ConfigureAwait(false);
var responseData = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
}
我做错了吗? 我只想上传我的32kb json(gzip)文件,并在其上有正确的Content-Encoding,以便浏览器处理解压缩(当我使用gsutil上传的文件时这样做,所以它按预期工作)