Я ищу в документах и Oracle sdk, чтобы узнать, есть ли что-нибудь, что мы можем загрузить в хранилище оракула.
Но я не нашел php sdk от Oracle или я что-то пропустил?
Я много исследовал, пожалуйста, помогите мне. Я хочу использовать php sdk для загрузки файлов и папок в Oracle cloud и предоставления URL-адресов этих файлов моему приложению.






Любой, кто ищет решение для того же, поэтому я понял это и разместил ответ здесь. Просмотрев слишком много ссылок в Интернете, я узнал, что Oracle совместим с Amazon s3 SDK. Итак, все, что вам нужно, это использовать AWS sdk и получить ключ доступа и секрет от Oracle, и все готово. Публикация кода.
<?php
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
use Aws\S3\Exception\S3Exception;
define('ORACLE_ACCESS_KEY', '***************************************');
define('ORACLE_SECRET_KEY', '***************************************');
define('ORACLE_REGION', '***************************************');
define('ORACLE_NAMESPACE', '***************************************');
function get_oracle_client($endpoint)
{
$endpoint = "https://".ORACLE_NAMESPACE.".compat.objectstorage.".ORACLE_REGION.".oraclecloud.com/{$endpoint}";
return new Aws\S3\S3Client(array(
'credentials' => [
'key' => ORACLE_ACCESS_KEY,
'secret' => ORACLE_SECRET_KEY,
],
'version' => 'latest',
'region' => ORACLE_REGION,
'bucket_endpoint' => true,
'endpoint' => $endpoint
));
}
function upload_file_oracle($bucket_name, $folder_name = '', $file_name)
{
if (empty(trim($bucket_name))) {
return array('success' => false, 'message' => 'Please provide valid bucket name!');
}
if (empty(trim($file_name))) {
return array('success' => false, 'message' => 'Please provide valid file name!');
}
if ($folder_name !== '') {
$keyname = $folder_name . '/' . $file_name;
$endpoint = "{$bucket_name}/";
} else {
$keyname = $file_name;
$endpoint = "{$bucket_name}/{$keyname}";
}
$s3 = get_oracle_client($endpoint);
$s3->getEndpoint();
$file_url = "https://objectstorage.".ORACLE_REGION.".oraclecloud.com/n/".ORACLE_NAMESPACE."/b/{$bucket_name}/o/{$keyname}";
try {
$s3->putObject(array(
'Bucket' => $bucket_name,
'Key' => $keyname,
'SourceFile' => $file_name,
'StorageClass' => 'REDUCED_REDUNDANCY'
));
return array('success' => true, 'message' => $file_url);
} catch (S3Exception $e) {
return array('success' => false, 'message' => $e->getMessage());
} catch (Exception $e) {
return array('success' => false, 'message' => $e->getMessage());
}
}
function upload_folder_oracle($bucket_name, $folder_name)
{
if (empty(trim($bucket_name))) {
return array('success' => false, 'message' => 'Please provide valid bucket name!');
}
if (empty(trim($folder_name))) {
return array('success' => false, 'message' => 'Please provide valid folder name!');
}
$keyname = $folder_name;
$endpoint = "{$bucket_name}/{$keyname}";
$s3 = get_oracle_client($endpoint);
try {
$manager = new \Aws\S3\Transfer($s3, $keyname, 's3://' . $bucket_name . '/' . $keyname);
$manager->transfer();
return array('success' => true);
} catch (S3Exception $e) {
return array('success' => false, 'message' => $e->getMessage());
} catch (Exception $e) {
return array('success' => false, 'message' => $e->getMessage());
}
}
Приведенный выше код работает и протестирован, для получения более подробной информации перейдите по ссылке - https://docs.cloud.oracle.com/en-us/iaas/Content/Object/Tasks/s3compatibleapi.htm