将文件从Google Drive Server直接复制到自己的服务器

时间:2018-05-08 17:57:07

标签: php html google-drive-api

我尝试将Google云端硬盘链接中的文件从Google服务器下载到我的网络服务器,以避免PHP POST中的最大尺寸为100。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "id", for: indexPath as IndexPath) as! MyCollectionViewCell

       if allIndex.contains(indexPath) {
          cell.contentView.backgroundColor = Colours.primary
       }
       else {
          cell.contentView.backgroundColor = Colours.secondary
       }
  }

插入像<?php $link = $_POST["linkToUpload"]; $upload = file_put_contents("uploads/test".rand().".txt", fopen($link, 'r')); header("Location: index.php"); ?> 这样的普通链接,效果很好。问题是链接谷歌驱动器http://example.com/text.txt。这是Google云端硬盘的直接链接,但它不起作用。所以我尝试插入我在本地https://drive.google.com/uc?authuser=0&id=000&export=download下载文件的链接,但它仍然无法正常工作。您是否认为Google正在尝试避免服务器到服务器的副本?或者还有另一种方法可以做到吗?

1 个答案:

答案 0 :(得分:0)

如果您想使用自己的应用程序获取文件,您应该使用API​​(应用程序编程接口)来获取这些文件。

查看file download documentation for Google Drive

PHP中的示例下载代码段:

$fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
$response = $driveService->files->get($fileId, array(
    'alt' => 'media'));
$content = $response->getBody()->getContents();