У нас есть бэкэнд-система, где при заполнении формы создается PDF-файл - этот PDF затем загружается в Dropbox и извлекается ссылка на файл, который затем добавляется в базу данных и отображается наших поставщиков.Получение постоянных ссылок из Dropbox
Я посмотрел высоко и низко - но единственный способ получить эти ссылки - использовать директиву createTemporaryDirectLink. Однако эти ссылки являются временными и истекают через несколько часов.
Я ищу, чтобы обеспечить совместное использование Не истекает ссылок.
Вот мой текущий код, который отлично работает
// Dropbox //
$dropbox_config = array(
'key' => 'xxxx',
'secret' => 'xxxx'
);
$accessToken='xxx-xxxxx';
$appInfo = dbx\AppInfo::loadFromJson($dropbox_config);
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");
$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0");
$sqlQuery = "select dropboxLink from get_order where orderId='".$lastOrderId."'";
$rsGetDropLink = mysqli_query($dbLink,$sqlQuery);
$rowGetDropLink = mysqli_fetch_assoc($rsGetDropLink);
$f = fopen("Orders/".$rowGetDropLink['dropboxLink'].'.pdf', "rb");
$result = $dbxClient->uploadFile("/Orders/".$rowGetDropLink['dropboxLink'].'.pdf', dbx\WriteMode::add(), $f);
fclose($f);
print_r($result);
$file = $dbxClient->getMetadata("/Orders/".$rowGetDropLink['dropboxLink'].'.pdf');
$dropboxPath = $file['path'];
$pathError = dbx\Path::findError($dropboxPath);
if ($pathError !== null) {
fwrite(STDERR, "Invalid <dropbox-path>: $pathError\n");
die;
}
$link = $dbxClient->createTemporaryDirectLink($dropboxPath);
$dw_link = $link[0]."?dl=1";
$sqlQuery = "update get_order set fullDropboxLink='".$dw_link."' where orderId='".$lastOrderId."'";
mysqli_query($dbLink,$sqlQuery);
// Dropbox ends//
header("location: thankyou.php?ordId=".$lastOrderId.'&categoryId='.$_REQUEST['categoryId']);
Как вы можете видеть, мы используем метод createTemporaryDirectLink, что приводит к временной ссылке будучи неправдоподобным, который истек сверхурочно.
Наши продавцы часто проверяют эти файлы каждые два дня, поэтому это неиспользуемое решение.
Привет Грег, я должен просто заменить createTemporaryDirectLink с createShareableLink или будет код нужен капитальный ремонт, а? – user1595112
Значения возврата немного отличаются, поэтому вам нужно обновить код, чтобы он соответствовал. – Greg