Giter Club home page Giter Club logo

laravel's Introduction

Database Backup Manager

Latest Stable Version License Total Downloads

This package provides a framework-agnostic database backup manager for dumping to and restoring databases from S3, Dropbox, FTP, SFTP, and Rackspace Cloud.

  • use version 2+ for >=PHP 7.3
  • use version 1 for <PHP 7.2

Watch a video tour showing the Laravel driver in action to give you an idea what is possible.

Table of Contents

Quick and Dirty

Configure your databases.

// config/database.php
'development' => [
    'type' => 'mysql',
    'host' => 'localhost',
    'port' => '3306',
    'user' => 'root',
    'pass' => 'password',
    'database' => 'test',
    // If singleTransaction is set to true, the --single-transcation flag will be set.
    // This is useful on transactional databases like InnoDB.
    // http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction
    'singleTransaction' => false,
    // Do not dump the given tables
    // Set only table names, without database name
    // Example: ['table1', 'table2']
    // http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table
    'ignoreTables' => [],
    // using ssl to connect to your database - active ssl-support (mysql only):
    'ssl'=>false,
    // add additional options to dump-command (like '--max-allowed-packet')
    'extraParams'=>null,
],
'production' => [
    'type' => 'postgresql',
    'host' => 'localhost',
    'port' => '5432',
    'user' => 'postgres',
    'pass' => 'password',
    'database' => 'test',
],

Configure your filesystems.

// config/storage.php
'local' => [
    'type' => 'Local',
    'root' => '/path/to/working/directory',
],
's3' => [
    'type' => 'AwsS3',
    'key'    => '',
    'secret' => '',
    'region' => 'us-east-1',
    'version' => 'latest',
    'bucket' => '',
    'root'   => '',
    'use_path_style_endpoint' => false,
],
'b2' => [
    'type' => 'B2',
    'key'    => '',
    'accountId' => '',
    'bucket' => '',
],
'gcs' => [
    'type' => 'Gcs',
    'key'    => '',
    'secret' => '',
    'version' => 'latest',
    'bucket' => '',
    'root'   => '',
],
'rackspace' => [
    'type' => 'Rackspace',
    'username' => '',
    'key' => '',
    'container' => '',
    'zone' => '',
    'root' => '',
],
'dropbox' => [
    'type' => 'DropboxV2',
    'token' => '',
    'key' => '',
    'secret' => '',
    'app' => '',
    'root' => '',
],
'ftp' => [
    'type' => 'Ftp',
    'host' => '',
    'username' => '',
    'password' => '',
    'root' => '',
    'port' => 21,
    'passive' => true,
    'ssl' => true,
    'timeout' => 30,
],
'sftp' => [
    'type' => 'Sftp',
    'host' => '',
    'username' => '',
    'password' => '',
    'root' => '',
    'port' => 21,
    'timeout' => 10,
    'privateKey' => '',
],
'flysystem' => [
    'type' => 'Flysystem',
    'name' => 's3_backup',
    //'prefix' => 'upload',
],
'doSpaces' => [
    'type' => 'AwsS3',
    'key' => '',
    'secret' => '',
    'region' => '',
    'bucket' => '',
    'root' => '',
    'endpoint' => '',
    'use_path_style_endpoint' => false,
],
'webdav' => [
    'type' => 'Webdav',
    'baseUri' => 'http://myserver.com',
    'userName' => '',
    'password' => '',
    'prefix' => '',
],

Backup to / restore from any configured database.

Backup the development database to Amazon S3. The S3 backup path will be test/backup.sql.gz in the end, when gzip is done with it.

use BackupManager\Filesystems\Destination;

$manager = require 'bootstrap.php';
$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip');

Backup to / restore from any configured filesystem.

Restore the database file test/backup.sql.gz from Amazon S3 to the development database.

$manager = require 'bootstrap.php';
$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');

This package does not allow you to backup from one database type and restore to another. A MySQL dump is not compatible with PostgreSQL.

Requirements

  • PHP 5.5
  • MySQL support requires mysqldump and mysql command-line binaries
  • PostgreSQL support requires pg_dump and psql command-line binaries
  • Gzip support requires gzip and gunzip command-line binaries

Installation

Composer

Run the following to include this via Composer

composer require backup-manager/backup-manager

Then, you'll need to select the appropriate packages for the adapters that you want to use.

# to support s3
composer require league/flysystem-aws-s3-v3

# to support b2
composer require mhetreramesh/flysystem-backblaze

# to support google cs
composer require league/flysystem-aws-s3-v2

# to install the preferred dropbox v2 driver
composer required spatie/flysystem-dropbox

# to install legacy dropbox v2 driver
composer require srmklive/flysystem-dropbox-v2

# to support rackspace
composer require league/flysystem-rackspace

# to support sftp
composer require league/flysystem-sftp

# to support webdav (supported by owncloud nad many other)
composer require league/flysystem-webdav

Usage

Once installed, the package must be bootstrapped (initial configuration) before it can be used.

We've provided a native PHP example here.

The required bootstrapping can be found in the example here.

Contribution Guidelines

We recommend using the vagrant configuration supplied with this package for development and contribution. Simply install VirtualBox, Vagrant, and Ansible then run vagrant up in the root folder. A virtualmachine specifically designed for development of the package will be built and launched for you.

When contributing please consider the following guidelines:

  • Code style is PSR-2
    • Interfaces should NOT be suffixed with Interface, Traits should NOT be suffixed with Trait.
  • All methods and classes must contain docblocks.
  • Ensure that you submit tests that have minimal 100% coverage. Given the project's simplicity it just makes sense.
  • When planning a pull-request to add new functionality, it may be wise to submit a proposal to ensure compatibility with the project's goals.

Maintainers

This package is maintained by Shawn McCool and you!

Backwards Compatibility Breaks

3.0

Remove support for symfony 2. Specifically symfony/process versions < 3.x

License

This package is licensed under the MIT license. Go wild.

laravel's People

Contributors

armandsar avatar bcalik avatar cmosguy avatar dani3l avatar daveismynamecom avatar devonzara avatar dougsisk avatar hansvn avatar hootlex avatar laurencei avatar lflaszlo avatar mamor avatar mitchellvanw avatar nafiesl avatar nicolasmahe avatar oskard avatar owenvoke avatar pietcompenda avatar pou avatar robbielove avatar rodrigore avatar soulofmachines avatar spamoom avatar srmklive avatar vanodevium avatar whoacowboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

laravel's Issues

Prefix - suffix support?

As far i can remember the older release had "prefix-suffix" support for output file name. I am using v1.1.1 and found that prefix-suffix is removed from config file. How can i achieve this?

not such LumenServiceProvider

hi, I use Lumen framework and wanna use backup-manager to backup my database;
but after I run 'composer require backup-manager/laravel',
there is no such providers named 'LumenServiceProvider'.
how could I fix this?thank you !

Class 'BackupManager\Filesystems\Destination' not found

i am getting error:

php artisan db:backup --database=mysql --destination=local --destinationPath=date +%Y/%d-%m-%Y --compression=gzip

[Symfony\Component\Debug\Exception\FatalErrorException] 
Class 'BackupManager\Filesystems\Destination' not found

The helper "dialog" is not defined.

I receive the following error when doing db:list, using the Laravel 5.1+ driver on Laravel 5.2.

vagrant@homestead:~/Code/Acme$ php artisan db:list
These arguments haven't been filled yet: source, path.
The following questions will fill these in for you.

Available sources: local, s3, gcs, rackspace, dropbox, ftp, sftp

[Symfony\Component\Console\Exception\InvalidArgumentException]
The helper "dialog" is not defined.

The Dialog Helper was depreciated in Symfony 2.5 and removed in 3.0, yet the package is configured to require symfony/process version ~2.1||~3.0.

The same is true for the Table Helper.

Problems on Laravel Forge

Can anyone advise me on this? The command below works fine via SSH but fails to trigger as a nightly scheduled job on Laravel Forge running as the forge user:

php /home/forge/mywebsite.com/artisan db:backup --database=mysql --destination=s3 --destinationPath=date +\%Y/dailys/%d --compression=gzip

I'm not too confident on the use of backticks so perhaps they are the problem?

Not fully compatible with Laravel 5.4

The "dynamic" setting of timestamps in the example command makes this package partially incompatible with Laravel 5.4 and mutex's. i.e:

    $date = Carbon::now()->toW3cString();
    $schedule->command("db:backup --destinationPath=/{$date}")->twiceDaily(13,21);

Because the Laravel mutex uses the full command expression as part of the construction - it means you always get different mutexes running this command.

For example - you'll get commands run as

db:backup --destinationPath=/2017-07-30T23:13:54+00:00 
db:backup --destinationPath=/2017-07-30T23:13:53+00:00 

This creates issues when using on load-balanced applications etc. Basically ->withoutOverlapping() wont work here.

My ideas for a solution;

  1. set timestamps as an option on the config of each filesystem driver
  2. set timestamps as a flag option

I'm thinking 2 is best? You could do --timestamp="Y-m-d" or whatever format you want. That way the command itself is static, but the result is a dynamic timestamp that is appended to the filename.

If I did a PR on this - which option would you prefer?

Tag PHP7 support

Hi, I'm trying to use this lib with php 7 but it's not working. I see you've updated the master branch to support php7 but can you tag it so composer require works

Cronjob not working

Hi,
Cron job is not working for me. Can you please check the code what could be the issue?

*/5 * * * * /usr/bin/php /var/www/aplication-folder/artisan db:backup --database=mysql --destination=dropbox --destinationPath=date +\%Y/%d-%m-%Y --compression=gzip

[League\Flysystem\FileExistsException] File already exists at path

Ever since the 31st January 2017 my Amazon S3 backups have stopped working with this error:

 [League\Flysystem\FileExistsException]
  File already exists at path

Any ideas? I'm pretty sure the backup manager used to just overwrite existing files. I may have also switched to a laravel forge server at this time so that could have something to do with it.

laravel backup issue

i m having these issue when testing. need help please.
php artisan db:backup --database=mysql --destination=dropbox --destinationPath=date +\%Y/%d-%m-%Y --compression=gzip
Error 0x2 starting php.exe artisan db:backup --database=mysql --destination=dropbox --destinationPath=2016\24-03-2016 --compression=gzip

Thank you in advance

[Question] new tag for PHP7

Hey @ShawnMcCool,

I am currently using 1.0.*@dev to get this package to install on PHP7 servers.

I saw that accepted a PR for the composer.json update. Were you planning on tagging or should I continue to use @dev?

Thanks for your time.

Support for laravel read-replica config

Laravel supports having a read and write key instead of host
this breaks the backup manager as it expects to see the host key

        'mysql' => [
            'read' => [
                'host' => array_merge([env('MYSQL_HOST' ,  'mysql')], explode(',', env('MYSQL_READ_REPLICAS', '')))
            ],
            'write' => [
                'host' => env('MYSQL_HOST', 'mysql')
            ],
             // 'host' => env('MYSQL_HOST',  'mysql'),
            'driver' => 'mysql',
            'database' => 'default_database',
            'port' => '3306',
            'collation' => 'utf8_unicode_ci',
            'charset' => 'utf8',
            'username' => env('MYSQL_USERNAME', 'root'),
            'password' => env('MYSQL_PASSWORD', 'password'),
            'strict' => false,
            'engine' => null,
        ],

Issues with Laravel 5.1

Hi, I'm testing this package with Laravel 5.1 and I found a few trouble in order to make it work.

After to install the package and run php artisan the console throw an failed to open stream.

vendor/backup-manager/laravel/src/../../../config/backup-manager.php): failed to open stream: No such file or directory'

To fix that I change the line where the variable $configPath is set. The actual method is :

        $configPath = __DIR__ . '/../../../config';

and I changed to the helper method of laravel: config_path(), which is more clean, short and reliable.

After that, when I run php artisan again, the console say:

  [ReflectionException]
  Class BackupManager\Integrations\Laravel\DbBackupCommand does not exist

So I noticed that in https://github.com/backup-manager/laravel/blob/master/src/Laravel5BackupManagerServiceProvider.php#L109-L111 the namespace is BackupManager\Integrations, where Integration doesn't exist. To fix that, I removed the Integrations word like this:

        'BackupManager\Laravel\DbBackupCommand',
        'BackupManager\Laravel\DbRestoreCommand',
        'BackupManager\Laravel\DbListCommand',

And if I run php artisan another error is display:

[ErrorException]
  Declaration of BackupManager\Laravel\BaseCommand::table() should be compatible with Illuminate\Console\Command::table(array $headers, $rows, $style = 'default')

To fix that, is necessary to remove the typehinting array in the $rows variable https://github.com/backup-manager/laravel/blob/master/src/BaseCommand.php#L38 , like this:

    public function table(array $headers, $rows, $style = 'default') 

And now I can run php artisan without problem in Laravel 5.1 ๐Ÿ˜„ (but i'm actually in this step, i will try to use this package with s3, and I hope that this fix the errors)

Cant backup with postgreSQL

When executing this command from Command line:

php artisan db:backup --database=pgsql --destination=dropbox --destinationPath=2015-laravel5.sql --compression=null

Dumping database and uploading...

[BackupManager\ShellProcessing\ShellProcessFailed]
'PGPASSWORD' is not recognized as an internal or external command,
operable program or batch file.

Any idea?

Not usable for Laravel 5.2

I installed a fresh 5.2 version and wanted to install the backup-manager.

But it requires symfony/process 2.* but Laravel is shipped with 3.*

Is there any way to use it?

Argument 2 passed to BackupProcedure::run() must be of the type array, string given

After taking care of #44, I'm still blocked on:

[Symfony\Component\Debug\Exception\FatalThrowableError]
Type error: Argument 2 passed to BackupManager\Procedures\BackupProcedure::run() must be of the type array, string given, called in /home/vagrant/Code/Acme/vendor/backup-manager/laravel/src/DbBackupCommand.php on line 93

I'm not sure how important that cast to array is on previous versions, so I'll let someone else take a look at this. :)

Backup from dynamic connections outside database.php

Any ideas how to setup backups for dynamic connections which credentials are stored in a mysql database. So in stead of getting the connection details from database.php I need a way to set these from my msql user table which stores all dynamic user connections.

Rotating backups?

I imagine this probably isn't the ideal area to ask, (forgive me)... is there any current (or planned) functionality to support rotating backups? IE: If I only want twice daily backups, for a month's supply at any given time... is this possible currently?

IE: I want twice daily backups for the most recent 30 days.

Just wondering. I can manually delete older backups if need be.

Can't restore from dropbox

Hi, I followed the youtube tutorial and the documentation and got the db:backup to work pretty fast.

However when I run the

php artisan db:restore

I get the following error: [Error exception] Undefined index: contents

Using Laravel 5.3

No database selected when backup dynamic database

Hello, i tried to backup my database dynamically but i got error no database selected, this is my code, i run this via console command

foreach($clients as $client) {
    Config::set('database.connections.tenant', array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => $client->db_name,
        'username'  => env('DB_USERNAME'),
        'password'  => env('DB_PASSWORD'),
        'charset'   => 'utf8',
        'collation' => 'utf8_general_ci',
        'prefix'    => '',
    ));

    Artisan::call('db:backup', [
        '--database' => 'tenant',
        '--destination' => 'local',
        '--destinationPath' => 'backup/database/' . $client->db_name,
        '--compression' => 'gzip'
    ]);
}

Error message

[BackupManager\ShellProcessing\ShellProcessFailed]                                    
  mysqldump: [Warning] Using a password on the command line interface can be insecure.  
  mysqldump: Got error: 1046: No database selected when selecting the database     

NOTE :

  • i also check that my database $client->db_name is exists
  • i successfully backup my database if i use mysqldump
  • if i put database name in config file it's work, but i need to run my code like my example above
  • i think the problem is when i call Artisan::call('db_backup') it's not see my setup above

i'm using Backup Manager v1.1.2 and Laravel 5.1

i m facing some problem

i install this package successfully
in my server my cron is= * * * * * php /path/to/artisan schedule:run

in my schedule here is the code

$schedule->command(
"db:backup --database=mysql --destination=dropbox --destinationPath=date +\%Y/%d-%m-%Y --compression=gzip"
)->everyTenMinutes();

but fact is its backup the database only once in a day?
but i put every ten minutes. can you tell me why i face this problem?

option to not encode database usernames into the backups?

Consider the case of a project that is developed/tested on a homestead machine where the database default user is "homestead", and then deployed on a production machine via forge where the database default user is "forge"

Right now, a backup from one could not be loaded into the other, because the username is hard-coded into the backup. Typically there are options that can be passed into the backup program that avoid this; for example, with postgres pgdump, it's "--no-owner."

Would it be possible to expose these options via backup-manager?

MongoDB

When you use MYSQL DB everithing work fine, but sometimes we use MYSQL and MongoDB together.
Are you planning to automate MongoDB dumps in you package?

destinationPath and compression not working in cronjob Laravel 5.2

I have installed backup-manager in fresh Laravel 5.2 on window
Now,
If i run from bash command prompt like
$ php artisan db:backup --database=mysql1 --destination=local --destinationPath
=projectname_prop.sql --compression=gzip
Dumping database and uploading...

Successfully dumped mysql1, compressed with gzip and store it to local at C:\wam
p\www\laraveltest\backup_test\storage\app\projectname_propagate.sql

but when i try for cronjob
$schedule->command(
"db:backup --database=mysql1 --destination=local --destinationPath=projectname_prop.sql --compression=gzip"
)->everyMinute();

folder is created like 58255bcf307c2
C:\wamp\www\laraveltest\backup_test\storage\app\58255bcf307c2

Help me.. what i am missing?

Issue with Laravel 5.0.34

Hello
I still got this.
laravel version : 5.0.34

[ErrorException]                                                                                                                                                                   
  Declaration of BackupManager\Laravel\Laravel50Compatibility::table() should be compatible with Illuminate\Console\Command::table(array $headers, array $rows, $style = 'default') 

fails to run as cron command

I have the below command set up for backing up

db:backup --database=mysql --destination=s3 --destinationPath=date +\test/%Y%m%d%H%M%S.sql--compression=gzip

Code works fine as command

Fails with local.ERROR: exception 'BackupManager\ShellProcessing\ShellProcessFailed' with message 'sh: mysqldump: command not found when the same is run from scheduler.

Any suggestions.

Scheduled backup - prompts

I want to use this as a scheduled artisan command on Forge, to run nightly at 3am. But how do I override the prompts?

How to use this package in laravel controller instead of Artisan Command ?

the original "backup-manager/backup-manager" package has some methods to run backup/restore from php code:

$manager->makeBackup()->run('development', 's3', 'test/backup.sql', 'gzip');
$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');

How can i achieve such functionality with "backup-manager/laravel". It seems "backup-manager/laravel" has support only for artisan command line.
Please give me a solution.

How to delete old backup and push latest ?

I want like if I schedule command daily it overwrite the old data backup and always keep new. when I try to run command same name its giving errors file already exist.
is it possible

Can't get it working on Laravel 4.2

Hello,

I've been using the heybigname/backup-manager package in a project with Laravel 4.2 for a long time. Which has been working great. I noticed that the repository has been moved. So I'm trying to update it. But I can't get it work.

I get this error whatever I try to backup.
Could not find configuration for connection local

Here is the app/config/backup-manager.php file:

return [
    'local' => [
        'type' => 'Local',
        'root' => '/',
    ],
    ...
]

I also tried to put this file into app/config/packages/backup-manager/laravel folder.

What I'm doing wrong? Previous repo was working fine.

File not found at path:

Every time I do a restore and insert a sourcePath I get "File not found at path" error. I have tried this as a string and not. I have also tried including the full path. the only way this works is if the backup is in the root directory.

Using ftp option.

db:restore command not properly accepting input from command line? It asks the question twice?

Ok, I'm getting a strange bug with the db:restore command. I've been using backup-manager/laravel for a while now with no issues, but I recently updated something (not sure what) which is causing the db:restore command to have a peculiar bug.

Here's an example of my terminal command line window:

$ php artisan db:restore
These arguments haven't been filled yet: source, sourcePath, database, compression
The following questions will fill these in for you.

Available storage services: local, s3, gcs, rackspace, dropbox, ftp, sftp
From which storage service do you want to choose?dropbox
From which storage service do you want to choose? dropbox

 From which path do you want to select? :
 > 

It asks "From which storage service do you want to choose?", so I type in 'dropbox' (the autocomplete is auto-filling in this answer) and I hit enter, but it seems to be rejecting this input, and asks the question again. I type 'dropbox' in again (this time autocomplete doesn't work) and it accepts the input, and moves onto the next question.

No idea why the first time it asks a question, where autocomplete is working properly, it is rejecting the input, but seems to accept the input properly the second time it asks a question, where autocomplete is not working properly.

It does this for every question. This is especially frustrating because autocomplete does not work the 2nd time the question is asked, so I need to manually type in the long filenames of my SQL database dumps in order to successfully restore that dump.

I recently begin looking around in files associated with this package such as DbRestoreCommand.php, AutoComplete.php, and a few others but can't quite figure out what's causing the bug at the moment. I'll continue to look, but if anybody knows what's causing the bug and can point it out so it can be fixed, it would be greatly helpful and appreciated.

Thanks regardless for the amazing package which I use regularly.

Cannot put exclamation mark in database password

My database password contain a exclamation mark !, but the escapeshellarg function replace it by a space.

Exemple, hello!world is replace by hello world.
Is there are a way to keep the ! in my password ?

restore from oneliner

Hi,

php artisan db:backup --database=mysql --destination=dropbox --destinationPath=date +\%Y/%d-%m-%Y --compression=gzip

does the backup but what if i want to build an restore function in php to trigger an artisan call.

I would like to be able to restore with one line is that possible?

Thank you.

php artisan clear-compiled gives me "Unresolvable dependency resolving"

I use dependency injection in an artisan command. Like described here the constructor is capable of doing so: http://laravel.com/docs/5.1/artisan#writing-commands

This is the error i get when composer calls "php artisan clear-compiled":

 [Illuminate\Contracts\Container\BindingResolutionException]                                                         
  Unresolvable dependency resolving [Parameter #0 [ <required> array $config ]] in class BackupManager\Config\Config  

Edit:
I moved it into an own command and called it via command-bus. There the dependency-injection works fine and the deployment process runs through without any error.
So the library seems to have problems with the dependency injection in artisan commands OR the DI doesn't work properly in artisan commands and it is a Laravel issue. You may close this issues if this specific case should be ignored (should perhaps be documented then).

Nothing to publish.

php artisan vendor:publish --provider="BackupManager\Laravel\Laravel5ServiceProvider"

returns

Nothing to publish.

commands ARE NOT available db:backup, db:restore and db:list.

S3 version issue

Apologies if I've missed something in the docs but I get this error when running makeBackup() using the S3 option.

I can't see where to add the version configuration in the backup-manager and I'm able to upload files to S3 elsewhere in my app.

My setup is Laravel 5.1, AWS 3, latest backup-manager.


exception 'InvalidArgumentException' with message 'Missing required client configuration options:

version: (string)

A "version" configuration value is required. Specifying a version constraint
ensures that your code will not be affected by a breaking change made to the
service. For example, when using Amazon S3, you can lock your API version to
"2006-03-01".

Your build of the SDK has the following version(s) of "s3": * "2006-03-01"

You may provide "latest" to the "version" configuration value to utilize the
most recent available API version that your client's API provider can find.
Note: Using 'latest' in a production application is not recommended.

A list of available API versions can be found on each client's API documentation
page: http://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html. If you are
unable to load a specific API version, then you may need to update your copy of
the SDK.`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.