Как мы загружаем файл в цифровые океанические пространства, используя PHP Codeigniter?
Мне нужно загрузить файл на сервер цифровых океанских пространств, используя проект PHP codeigniter. Если у кого есть рабочий образец, пожалуйста, поделитесь.
3 ответа
Насколько я знаю, DigitalOcean Spaces предоставляет облачное хранилище для статического контента для ваших сайтов, а также предоставляет услугу CDN. Я знаю, что вы можете использовать их API для манипулирования корзинами, может быть, у них тоже есть API для загрузки файлов. Простой Googling получил мне эту ссылку https://www.digitalocean.com/docs/spaces/resources/ Вы можете использовать php cURL для загрузки файлов, используя их API.
Не используйте spaceAPI, он неполный.
Используйте SDK AWS
use Aws\S3\S3Client;
$this->client = new S3Client([
'version' => 'latest',
'region' => 'region',
'endpoint' => 'https://region.digitaloceanspaces.com',
'credentials' => [
'key' => $mod->key,
'secret' => $mod->secret,
]
])
Регион там, где ваше пространство. Для DO это, по-видимому, не имеет значения или увеличивает скорость в любом случае. Затем вы можете загрузить файл напрямую с помощью
$result = $this->client->putObject(array(
'Bucket' => $bucket,
'Key' => 'data_from_file.txt',
'SourceFile' => $pathToFile,
'Metadata' => array(
'Foo' => 'abc',
'Baz' => '123'
)
));
Вы можете использовать SPACES-API из github
composer require sociallydev/spaces-api:dev-master
Подключить
//Either:
require_once("spaces.php");
//OR COMPOSER:
require_once("vendor/autoload.php"); //Install first by executing: composer require SociallyDev/Spaces-API in your project's directory.
$key = "EXAMPLE_KEY";
$secret = "EXAMPLE_SECRET";
$space_name = "my-space";
$region = "nyc3";
$space = new SpacesConnect($key, $secret, $space_name, $region);
Загрузка
$path_to_file = "image.png";
$space->UploadFile($path_to_file, "public", "save_as.png");
Для получения дополнительной информации используйте эту ссылку