Spaces-API/docs/Upgrade2-3.md
2021-08-09 17:33:50 +01:00

4.8 KiB

Upgrade guide for v2 to v3

A lot has changed in this version release, so please read carefully to ensure you make all necessary changes.

Namespace

Spaces-API is now namespaced, so you will need to add use SpacesAPI\Spaces; to the top of your files.

Method changes

Spaces::__construct()

Region is now passed into the Spaces constructor instead of the Space.

Old signature:

Spaces::__construct($accessKey, $secretKey, $host = "digitaloceanspaces.com")

New signature

Spaces::__construct(string $accessKey, string $secretKey, string $region = "ams3", string $host = "digitaloceanspaces.com")

Spaces::listSpaces()

Method name has changed to Spaces::list()


Spaces::space()

Signature has changed as the region is now passed into the Spaces constructor

Old signature:

Spaces::space($name, $region = "ams3")

New signature

Spaces::space(string $name)

Space::__contruct()

Signature has changed as S3 credentials are no longer passed in, nor the region or host.

Old signature:

Space::__construct($name, $region, $accessKey, $secretKey, $host)

New signature

Space::__construct(S3Client $s3, string $name)

Space::create()

This method has moved to the Spaces class and the signature has changed

Old signature:

Space::create($privacy = "private")

New signature

Spaces::create(string $name, bool $public = false)

Space::downloadToDirectory()

Method name has changed. Parameter names have changed, but function the same way.

Old signature:

Space::downloadToDirectory($directory, $filesStartingAs = "")

New signature

Spaces::downloadDirectory(string $local, ?string $remote = null)

Space::upload()

Method name and signature has changed

Old signature:

Space::upload($text, $saveAs, $privacy = "private", $params = array())

New signature

Spaces::uploadText(string $text, string $filename, array $params = [])

Space::uploadFile()

$privacy parameter removed from signature. Parameter names have changed, but function the same way.

Old signature:

Space::uploadFile($filePath, $saveAs = "", $privacy = "private")

New signature

Spaces::uploadFile(string $filepath, ?string $filename = null)

Spaces::downloadFile()

Method has moved to File, changed name and changed signature

Old signature:

Space::downloadFile($file, $saveTo = false)

New signature

File::download(string $saveAs)

Space::copyFile()

Method has moved to File, changed name and changed signature

Old signature:

Space::copyFile($filePath, $saveAs, $toSpace = "", $privacy = "private")

New signature

File::copy(string $newFilename, bool $public = false)

Space::listFiles()

Method signature has changed. This shouldn't have much impact as almost no-one should be using the second/third argument.

Old signature:

Space::listFiles($ofFolder = "", $autoIterate = true, $continueAfter = null)

New signature

Space::listFiles(string $directory = "", ?string $continuationToken = null)

Space::fileExists()

Method removed.

If you need to check for file existence, instantiate a File object from the space, and catch the FileDoesntExistException

try {
    $space->file("filename.txt");
} catch (FileDoesntExistException $e) {
    // Uh oh, the file doesn't exist
}

Space::fileInfo()

Method removed

File information is now stored in properties on the File object

$file = $space->file('filename.txt');
$file->content_type;
$file->content_length;
$file->expiration;
$file->e_tag;
$file->last_modified;

Space::url()

Method moved to File and signature has changed

Old signature:

Space::url($path)

New signature

File::getURL()

Space::signedURL()

Method moved to File and signature has changes

Old signature:

Space::signedURL($path, $validFor = "15 minutes")

New signature

File::getSignedURL($validFor = "15 minutes")

Space::deleteFolder()

Method name has changed. Parameter name has changed, but meaning remains the same.

Old signature:

Space::deleteFolder($prefixOrPath)

New signature

File::deleteDirectory(string $path)

Space::deleteFile()

Method has moved to File and signature has changed.

Old signature:

Space::deleteFile($path)

New signature

File::delete()

Space::filePrivacy()

Method removed. Use File::makePublic() or File::makePrivate() instead.


Space::setCORS()

Method removed. Use Space::addCORSOrigin(), Space::removeCORSOrigin() or Space::removeAllCORSOrigins() instead

Space::getLifecycleRules()

Removed with no replacement.

Space::setLifecycleRules()

Removed with no replacement.