Unity Editor将文件上传到PreSignedURL

时间:2018-07-25 07:41:59

标签: c# unity3d amazon-s3

**添加修补程序 内容类型已删除 Python更改为预签名网址

我的目标是将生成的WebGL代码发布到我的Web服务器上,以供Unity im正在使用的开源插件。 AWSSDK在编辑器中不起作用,因此我认为我会在Web服务器上生成一个预签名的URL,并将其传递给unity,如下所示。

# Generate the POST attributes
s3.generate_presigned_url(
'put_object', Params={
    'Bucket': 'webgl-assets',
    'Key': 'media/somethig.unityasset',
    'ACL': 'public-read',
},
ExpiresIn=36000

GENERATES

https://webgl-assets.s3.amazonaws.com/media/sonethig.unityasset?AWSAccessKeyId=AKIDJJ2J32&Signature=QLbXw2J12H3HJHh213Dw%3D&x-amz-acl=public-read&Expires=1532583586

然后在编辑器模式下,在Unity的C#端,我尝试如下调用URL

public void UploadToS3(string filePath, string key)
{
    string URL = "https://webgl-assets.s3.amazonaws.com/media/file.unityweb?key=media%2Ffile.unityweb&AWSAccessKeyId=AKIAIA&policy=eyJDg6Mjg6MzRaIiwgImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAibXhsdmwtd2ViZ2wtYXNzZXRzIn0sIHsia2V5IjogIm1lZGlhL2ZpifV19&signature=8m4CR8mfzgJX4TeTD";
    UnityWebRequest www = UnityWebRequest.Put(URL, System.IO.File.ReadAllBytes(filePath));
    www.Send();

    while (www.responseCode == 0)
    {
        //do something, or nothing while blocking
    }
    Debug.Log("Send Response: " + www.responseCode + " ");
}

响应是403-我尝试复制一个JS例子来完成此操作并将其转换为C#,但是我的C#太生锈了。有人解决过类似的问题吗?

0 个答案:

没有答案