我设置流媒体发布的方式与设置下载发行版的方式相同,我使用的是osmf播放器。由于某些原因,我无法播放我正在测试的mp4文件。所以我测试了一些我在我的发行版中使用Restrict Viewer Access的东西,我能够播放我的普通文件,只需添加文件名,以及带有signedurl的文件。但是当我使用Restricted Viewer Access放回我的发行版时,对于签名的网址我只能播放它们。 我在我的云端分发E1XXXXXXXXXW上附加了一个标识,这是我的存储桶策略
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1XXXXXXXXXW"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucketXXXXXXXXXXXX/*"
}
]
}
但是当我限制“AWS”时,我无法访问我的任何文件:“arn:aws:iam :: cloudfront:user / CloudFront Origin Access Identity E1XXXXXXXXXW”
更新
所以我做了更多测试,我创建了一个下载发行版并保留了我的流媒体发布,这就是代码,
String signedUrlDownload = CloudFrontService.signUrl("http://" + distributionDomain + "/" + s3ObjectKey, // Resource
// URL or
// Path
keyPairId, // Certificate identifier, an active trusted
// signer for the distribution
derPrivateKey, // DER Private key data
policy // Access control policy
);
System.out.println(signedUrlDownload);
signedUrl = CloudFrontService.signUrl(s3ObjectKey, // Resource
// URL or
// Path
keyPairId, // Certificate identifier, an active trusted
// signer for the distribution
derPrivateKey, // DER Private key data
policy // Access control policy
);
System.out.println(signedUrl);
所以当我这样做时,我可以使用signedUrlDownload发出的字符串下载我的文件。
所以我知道它是正确生成的。
所以我一直在做测试并取消了Restrict View Access,并再次尝试使用签名的URL,它似乎工作,但后来我开始手动更改网址,无论我做什么,它每次都有效。 一切正常:
testfolder/myfile.m4a
testfolder/myfile.m4a?aaaaaa=xxxxxxxxx
testfolder/myfile.m4a??Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6IioiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEzODA1OTg3NTN9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMC4wLjAuMC8wIn0sIkRhdGVHcmVhdGVyVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxMzgwNTg3OTUzfX19XX0_&Signature=EzXX1h6iBFSb6Gx2LeFwOnFmvCl6flNMXYsEKwd7ZSSMWlcd-mtOXjBqvoP58M~Bj1kikbNSDaCX5j14TY6LjVtTXE7QgcGC~0c9~wxsDAnN8VYN8ItTDJySzwv8oLPrHc3O2hh6kGF7UH3T04qbhXplRdSgHZJePLHbfG70z6A_&Key-Pair-Id=APKAITVLU6K7B3YQB4HQ
因此,这告诉我,当我限制访问时,我的策略无法正常工作,或者我将错误的值传递给我的播放器(我还在cloudfront客户端诊断工具http://d1k5ny0m6d4zlj.cloudfront.net/diag/CFStreamingDiag.html上进行了测试)。
这就是我在客户端上所做的基本上是传递以下流:
rtmp://myasdfad.cloudfront.com/cfx/st/mp4:testfolder/myfiles.m4p?Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6IioiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEzODA1OTk5MjB9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMC4wLjAuMC8wIn0sIkRhdGVHcmVhdGVyVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxMzgwNTg5MTIwfX19XX0_&Signature=jaw9KQybdckjvJBpJpeo-ukVEy9nerKsTpNAa3SJxrYkWzQG0CrF6hP1ok0iGW4wKvft4hhKzZhaO-OL7hVXE09ORzCxosDhYVPGvFoLKGNYH3mP4KXXxqlBxVcNeoUogRXqNI2SJW2J-TwQ-othwwRRas3pDaVfMddyrjBr2pU_&Key-Pair-Id=APKAITVLU6K7B3YQB4HQ
答案 0 :(得分:0)
我错了,最初的时间是错误的,这就是为什么它有时有效,有时它没有。