首页 > 解决方案 > 使用 PL/SQL SDK Dbms_cloud 从 MinIO 获取存储桶列表

问题描述

您好我一直在努力寻找正确的 URI 格式来与在容器中运行的 MinIO 服务器进行通信我只是在寻找正确的 URI 格式,因为我得到了

ORA-20006:不支持的对象存储 URI - https://play.min.io:9000 ORA-06512:在“C##CLOUD$SERVICE.DBMS_CLOUD”,第 1278 行 ORA-06512:在“C##CLOUD$SERVICE.DBMS_CLOUD” ”,第 5316 行 ORA-06512:在“ADMIN.AWS_LIST_BUCKETS”,第 8 行

注意:我使用 https://play.min.io:9000进行测试

CREATE OR REPLACE FUNCTION aws_list_buckets( 
credential_name IN VARCHAR2,
region IN CLOB
) RETURN CLOB 
AS 
resp dbms_cloud_types.RESP;
BEGIN
resp := dbms_cloud.send_request(
    credential_name,
    uri => 'https://play.min.io:9000',
    method => dbms_cloud.METHOD_GET
);
RETURN dbms_cloud.get_response_text(resp);

结束 aws_list_buckets;

标签: oracleplsqlminio

解决方案


错误消息具有误导性。这不是 URI 格式的问题,而是 AUTHORIZED 云提供商的问题。

请以 SYS 身份向 CDB 发出以下命令:

insert into C##CLOUD$SERVICE.dbms_cloud_store values ('AMAZON_S3','%play.min.io',null,1); commit ;

另请注意,您可能需要使用 443 端口(不在您的示例代码中,但对于 dbms_cloud 的 list_objects 方法,它似乎是硬编码的)。

问候,

维吉尔-马克西米利安 CREVON


推荐阅读