【发布时间】:2019-10-02 04:38:22
【问题描述】:
我有一个 10 级的安卓游戏。菜单屏幕将有图标来加载关卡。每个级别都是一个单独的文件,例如 level1.swf 到 level10.swf。当游戏托管在 GoDaddy 中时,这些文件在游戏中加载正常。
问题:
当我使用 public 设置将文件移动到 S3 存储(亚马逊网络服务)时,
文件正在浏览器中下载,但游戏中没有加载相同的文件。
有什么建议吗?
我尝试过同时使用这两种 S3 URL 格式..
我的结果是:
- 在浏览器中工作
- 在网站的 html 页面中工作
- 在游戏中不工作
我的 crossdomain.xml 如下
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="*"/>
</cross-domain-policy>
但是,托管在 google 存储中的文件运行良好
if(lev==2)
{
URLArray[1] ="https://storage.googleapis.com/reverie/andriod_assets1/Reverie_8.swf"
}
if(lev>=3)
{
URLArray[1] ="https://game.s3.amazonaws.com/levels/level"+1+".swf"
}
游戏可以加载并玩 2 级 游戏无法加载关卡 3
【问题讨论】:
-
将文件作为数据下载到 File.applicationStorageDirectory,然后作为 SWF 从那里加载。
-
@Organis 相同的文件如果托管在 godaddy 中可以工作,但不能在 S3 中工作
-
您的链接有错误。他们如何“在浏览器中工作”?问题出在您的上传设置中。检查section c: Public Access。还要检查您是否使用correct EndPoint for your region。
-
您的所有 AWS 链接都在 (Chrome) 浏览器中显示此错误:
<Message>All access to this object has been disabled</Message>。 Google 存储中的 .swf 可以下载。问题再次出在您的 AWS 设置中。确保您的 S3 bucket 具有适合您所在地区的正确 endpoint。那是xxx.amazonaws.comurl 中的XXX。如果您不在美国,那么您的存储桶端点不是 S3。我自己 8 年来,自从我在英国以来,我不得不使用端点eu-west。您在阅读他们的屏幕说明吗?不要只是快速单击确定所有内容,然后对锁定的文件访问感到惊讶。
标签: android amazon-web-services flash amazon-s3