小编Alv*_*vin的帖子

GitLab:备份rake任务是原子的吗?

如果我使用gitlab创建 GitLab备份:backup:创建 rake任务就像有人推送到存储库一样,备份过程会受到影响吗?

在进行备份之前是否有必要关闭GitLab?

gitlab

7
推荐指数
1
解决办法
1131
查看次数

stream.read提供损坏的字节

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();

int sizeToRead = (int)response.ContentLength;
int sizeRead = 0;
int buffer = 1;
byte[] bytes = new byte[sizeToRead];
while (sizeToRead > 0)
{
    int rs = sizeToRead > buffer ? buffer : sizeToRead;
    stream.Read(bytes, sizeRead, rs);
    sizeToRead -= rs;
    sizeRead += rs;
}

stream.Close();
System.IO.File.WriteAllBytes("c:\\tmp\\b.mp3", bytes);
Run Code Online (Sandbox Code Playgroud)

我有上面的代码.其目的是从某处下载mp3文件并将其保存到c:\ tmp\filename.而且效果很好.

但是,如果我将缓冲区大小更改为不是1,例如512.下载的mp3文件将是沙哑的.我已经将我的程序下载的文件与通过浏览器下载的文件进行了比较,我发现我的程序下载的mp3文件的一些字节被设置为0(它们的文件大小是相同的).

此外,当我使用上面的代码下载mp3文件时,我也使用fiddler来监控流量.我把从我的程序和浏览器下载的mp3搞得一团糟,所有的字节都是一样的.

所以,我猜问题是在流阅读器或阅读过程中.有谁知道为什么会这样?以及如何在不将缓冲区大小设置为1的情况下解决它?

c# stream

2
推荐指数
1
解决办法
702
查看次数

标签 统计

c# ×1

gitlab ×1

stream ×1