问题描述
$timeout = 0; //default 3600
$signedUrl = $ossClient->signUrl($bucketName,$object,$timeout,"GET");
echo $signedUrl;
解决方法
从 Official Documentation 来看,这是不可能的。
网址的最长有效期为32,400 秒,即 9 小时。
以下是上述链接中的完整信息:
,Andrea 关于签名 URL 的最大有效性是正确的。如果您正在寻找永不过期的静态 URL,我只会看到两个选项:
-
公开 - 您可以将此对象的访问控制列表 (ACL) 设置为
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatDirection="Horizontal"> <ItemTemplate> <asp:ImageButton height="270px" width="200px" ID="Prod_ImageLabel" runat="server" ImageUrl='<%# Eval("Prod_Image") %>' /> </ItemTemplate> </asp:DataList>
,以便任何知道链接的人都可以查看它。您可以通过 API 或网络控制台为对象设置 ACL。 - 从您的 API 提供对象 -您的 API 可以从 OSS 获取对象并将其流式传输到客户端。如果对象在您的应用程序授权之后并且不希望对象完全公开,则此方法很有用。