我正在尝试将50MB文件上传到我的Google云端硬盘帐户上的文件夹。
算法:
然后我的Google云端硬盘上的文件应该是blahblahblah/backup.sql.tar.gz
但事实并非如此。而且我确信所有内容都会在上传结束时失败 - 没有输出。
我甚至不知道我该如何让客户保密?我尝试了开发控制台,但我只得到:
CLIENT ID
CERTIFICATE FINGERPRINTS
API KEY
到目前为止我已尝试过:
https://developers.google.com/drive/web/quickstart/quickstart-php https://github.com/google/google-api-php-client/tree/master/examples
还有这个:
<?PHP
/**
* Insert new file.
*
* @param Google_DriveService $service Drive API service instance.
* @param string $title Title of the file to insert, including the extension.
* @param string $description Description of the file to insert.
* @param string $parentId Parent folder's ID.
* @param string $mimeType MIME type of the file to insert.
* @param string $filename Filename of the file to insert.
* @return Google_DriveFile The file that was inserted. NULL is returned if an API error occurred.
*/
function insertFile($service, $title, $description, $parentId, $mimeType, $filename) {
$file = new Google_DriveFile();
$file->setTitle($title);
$file->setDescription($description);
$file->setMimeType($mimeType);
// Set the parent folder.
if ($parentId != null) {
$parent = new Google_ParentReference();
$parent->setId($parentId);
$file->setParents(array($parent));
}
try {
$data = file_get_contents($filename);
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => $mimeType,
'uploadType' => 'media'
));
// Uncomment the following line to print the File ID
// print 'File ID: %s' % $createdFile->getId();
return $createdFile;
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
}
我使用最新的Google API PHP客户端库。
我可以使用API并上传文件来获得简单的PHP代码吗?
不涉及用户操作。我不需要授权用户。 一切都应该在服务器端完成。
答案 0 :(得分:1)
要获取客户ID和公钥,您需要注册您的应用:Google Developers Console。
详细文档请访问:Google Drive realtime API quickstart。
答案 1 :(得分:1)
Client Secret适用于Web应用程序,其中多个或单个用户必须登录才能授权。您的案例需要一个服务帐户,其中一个帐户处理所有内容,并且只需要可以在脚本中编码的某些参数。
$json = json_decode(file_get_contents("xxxxxx.json"), true);
$CLIENT_ID = $json['client_id'];
$CLIENT_EMAIL = $json['client_email'];
$REDIRECT_URI = "";
$private_key = file_get_contents('xxxxxxxx.p12');
$credentials = new Google_Auth_AssertionCredentials(
$CLIENT_SECRET,
$SCOPES,
$private_key
);
$client = new Google_Client();
$client->setApplicationName("appName");
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion();
}
使用您的文件填写x,确保下载.json和.p12以便脚本可以读取它。希望它有所帮助。