У меня проблемы с загрузкой файла в облачное хранилище Google.Это аудиофайл.Если я преобразую содержимое файла в base64, загрузка завершится успешно.Но, с другой стороны, нет ничего, что могло бы преобразовать его обратно в двоичный аудиофайл.Это не происходит автоматически.Если я записываю двоичные байты в поток запроса, он истекает.
Мне нужно быть на .Net core 2.0 и заставить его работать с Unity3D.Следовательно, нельзя использовать клиентскую библиотеку, которая предназначена для более высоких версий .Net.
string fileName = Path.GetFileName(strAudioFileName);
HttpWebRequest request = HttpWebRequest)WebRequest.Create("https://www.googleapis.com/upload/storage/v1/b/my-bucket/o?uploadType=media&name=" + fileName );
request.Method = "POST";
request.Headers["x-goog-project-id"] = "9999999999";
byte[] bFileContent = File.ReadAllBytes(strAudioFileName);
//string strFileContent = Convert.ToBase64String(File.ReadAllBytes(strAudioFileName));// upload works if i use this.
Debug.Log("File size: Binary Length" + bFileContent.Length);
request.ContentType = "application/octet-stream";
request.ContentLength = bFileContent.Length;
//request.ContentLength =strFileContent.Length; //Length if base64 is used.
if (m_Token != null)
{
request.Headers["Authorization"] = "Bearer " + m_Token;
}
StreamWriter RestReqstreamWriter = new StreamWriter(request.GetRequestStream());
RestReqstreamWriter.Write(File.ReadAllBytes(strAudioFileName));
RestReqstreamWriter.Flush();
var httpResponse = (HttpWebResponse)request.GetResponse();
Вопросы: 1. С кодировкой base64, есть ли какой-либо тип содержимого запроса, который я мог бы попробовать, который автоматически преобразуется в двоичный файл?
Есть ли способ сделать это с загрузкой двоичного файла без base64?Мой код здесь истекает.
Заранее спасибо.