JSA*_*SAT 3 oracle-cloud-infrastructure oci-java-sdk oracle-cloud-infrastructure-classic
我已经有一个使用 oci-java-sdk 检索存储桶中的对象的代码,并且它按预期工作。我想检索上传到对象存储中的存储桶的文件的 URL,当我使用此 URL 时,它应该重定向到实际位置,而不询问任何凭据。我看到了预先验证的请求,但我再次需要创建一个请求。我不想再发送一个请求,并希望在现有的GetObjectResponse 中获取 URL。 任何建议>谢谢,js
对象的 URL 不会从 API 返回,但可以使用您知道的信息构建(请参阅下面的更新!)。模式是:
https://{api_endpoint}/n/{namespace_name}/b/{bucket_name}/o/{object_name}
访问该 URL(通常见下文)需要身份验证。我们的身份验证机制描述如下:
https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/signingrequests.htm
如果您将存储桶配置为公共存储桶,则不需要身份验证。
正如您所提到的,预验证请求 (PAR) 是一种选择。它们通常在这种情况下使用,而且效果很好。
https://docs.cloud.oracle.com/en-us/iaas/Content/Object/Tasks/usingpreauthenticatedrequests.htm
严格来说,也可以使用我们的 Amazon S3 兼容 API...
https://docs.cloud.oracle.com/en-us/iaas/Content/Object/Tasks/s3knownapi.htm
...以及 S3 的预签名 URL,用于生成(不涉及 API)无需额外身份验证即可工作的 URL。
https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html
更新:一位队友指出,OCI SDK for Java 现在包含一个 getEndpoint 方法,可用于获取查询对象存储 API 时所需的主机名。 https://docs.cloud.oracle.com/en-us/iaas/tools/java/1.25.3/com/oracle/bmc/objectstorage/ObjectStorage.html#getEndpoint--
| 归档时间: |
|
| 查看次数: |
3889 次 |
| 最近记录: |