【发布时间】:2016-10-17 08:57:02
【问题描述】:
我正在尝试将数据上传到 Azure 门户上的 blob 服务。
我一直在尝试使用这个页面:https://msdn.microsoft.com/library/azure/dd179451.aspx
我的代码如下:
IEnumerator SetItem ()
{
DataJson data = new DataJson("Amy", "201289");
string json = JsonUtility.ToJson(data);
UnityWebRequest newWWW = UnityWebRequest.Put(
"https://compstorage.blob.core.windows.net/folderName/item", json);
yield return newWWW.Send();
if (newWWW.isError == false)
{
Debug.Log("Form upload complete!");
}
UnityWebRequest www = UnityWebRequest.Get("compstorage.blob.core.windows.net/folderName/item.json");
yield return www.Send();
string text = System.Text.Encoding.UTF8.GetString(www.downloadHandler.data);
DataJson newData = JsonUtility.FromJson<DataJson>(text);
Debug.Log(newData.ToString());
}
blob 设置为 Blob,意思是读、写权限。我尝试了各种变体,例如添加/删除文件扩展名,还添加了 SaS 密钥,但它从不更新服务器内容,尽管 Put 请求声称成功。 Get 请求工作正常,但打印的是旧版本的数据,而不是更新的数据。
有谁知道Unity中Put请求的使用方法
【问题讨论】:
-
您是否从 Azure 存储收到任何错误消息?
-
没有,一切正常。我试图从 uploadHandler 读取内容,但没有。
-
这很奇怪!通常应该从 Azure 存储报告一些错误。但有一件事:将容器的 ACL 设置为
Blob在这种情况下无济于事。请参阅此线程以获取更多详细信息:stackoverflow.com/questions/40017960/…。您提到您也尝试过使用 SAS。你的 SAS 有Write权限吗? -
这一切都有。我试图附加 SAS,但没有任何反应。我想我一定在某处遗漏了一件事。我会继续努力的。
-
您可能会发现这个显示各种 PUT 身份验证 blob 请求的示例 Unity 项目很有用 - github.com/Unity3dAzure/StorageServicesDemo