2019-02-07 19:23:14 -08:00
< ? php
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
/*
* For more information about creating a WorkDocs application see the WorkDocs Developer Guide at
* https://docs.aws.amazon.com/workdocs/latest/developerguide/wd-auth-user.html
*
*
*/
// snippet-start:[workdocs.php.upload_document.complete]
// snippet-start:[workdocs.php.upload_document.import]
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
require 'vendor/autoload.php' ;
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
use Aws\Exception\AwsException ;
use GuzzleHttp\Client as httpClient ;
use GuzzleHttp\Exception\ClientException ;
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
// snippet-end:[workdocs.php.upload_document.import]
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
/**
* Upload a Document to Amazon WorkDocs.
*
* This code expects that you have AWS credentials set up per:
* https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
*/
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
//Create a workdocs Client
// snippet-start:[workdocs.php.upload_document.main]
$client = new Aws\WorkDocs\WorkDocsClient ([
'profile' => 'default' ,
'version' => '2016-05-01' ,
'region' => 'us-east-2'
]);
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
$folder = 'folderid' ;
$pathtoFile = '' ;
$file = 'filename.txt' ;
2024-02-05 10:49:20 -07:00
2019-02-16 02:32:40 -08:00
$authTokenFilePath = 'token.txt' ;
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
try {
$fileToUpload = $pathtoFile . $file ;
2019-02-16 02:32:40 -08:00
$file = fopen ( $authTokenFilePath , 'r' );
2019-02-16 02:57:48 -08:00
$authToken = fread ( $file , filesize ( $file ));
2019-02-16 02:32:40 -08:00
fclose ( $file );
2024-02-05 10:49:20 -07:00
2019-03-10 22:29:05 -07:00
print ( " Create Document \n " );
2019-02-07 19:23:14 -08:00
$result = $client -> initiateDocumentVersionUpload ([
2019-02-16 02:57:48 -08:00
'AuthenticationToken' => $authToken ,
2019-02-07 19:23:14 -08:00
'ParentFolderId' => $folder ,
'Name' => $file ,
]);
var_dump ( $result );
$documentID = $result [ 'Metadata' ][ 'Id' ];
$documentVersionID = $result [ 'Metadata' ][ 'LatestVersionMetadata' ][ 'Id' ];
$uploadurl = $result [ 'UploadMetadata' ][ 'UploadUrl' ];
} catch ( AwsException $e ) {
// output error message if fails
2019-02-09 15:40:51 -08:00
echo $e -> getMessage () . " \n " ;
2019-02-07 19:23:14 -08:00
}
try {
2019-03-10 22:29:05 -07:00
print ( " Upload Document \n " );
2019-02-07 19:23:14 -08:00
$body = fopen ( $fileToUpload , 'r' );
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
$guzzle = new httpClient ();
$upload = $guzzle -> put ( $uploadurl , [
'body' => $body
]);
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
var_dump ( $upload );
} catch ( ClientException $e ) {
// output error message if fails
2019-02-09 15:40:51 -08:00
echo $e -> getMessage () . " \n " ;
2019-02-07 19:23:14 -08:00
}
try {
2019-03-10 22:29:05 -07:00
print ( " Update Document Version \n " );
2019-02-07 19:23:14 -08:00
$updateResult = $client -> updateDocumentVersion ([
2019-02-16 02:57:48 -08:00
'AuthenticationToken' => $authToken ,
2019-02-07 19:23:14 -08:00
'DocumentId' => $documentID ,
'VersionId' => $documentVersionID ,
'VersionStatus' => 'ACTIVE' ,
]);
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
var_dump ( $updateResult );
} catch ( AwsException $e ) {
// output error message if fails
2019-02-09 15:40:51 -08:00
echo $e -> getMessage () . " \n " ;
2019-02-07 19:23:14 -08:00
}
2024-02-05 10:49:20 -07:00
2019-02-07 19:23:14 -08:00
// snippet-end:[workdocs.php.upload_document.main]
// snippet-end:[workdocs.php.upload_document.complete]
// snippet-sourceauthor:[jschwarzwalder (AWS)]