Wir haben ein Backend-System, wo bei einem Formular ausfüllen, eine PDF generiert wird - diese PDF wird dann in Dropbox hochgeladen und ein Link zu der Datei abgerufen, die dann in die Datenbank aufgenommen wird und sichtbar ist unsere Verkäufer.Abrufen permanenter Links von Dropbox
Ich habe hoch und niedrig gesucht - aber die einzige Möglichkeit, diese Links zu erhalten, ist die Verwendung der createTemporaryDirectLink Direktive. Diese Links sind jedoch temporär und verfallen nach ein paar Stunden.
Ich suche sharable nicht auslaufende Links.
Hier ist mein aktueller Code,
// 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']);
gut funktioniert Wie Sie sehen können, wir die createTemporaryDirectLink Methode verwenden, die zu einem temporären Link führt geholt, die Überstunden abgelaufen.
Unsere Lieferanten überprüfen diese Dateien oft alle zwei Tage - dies ist also eine nicht verwendbare Lösung.
Hallo Greg, sollte ich mit createShareableLink ersetzen createTemporaryDirectLink gerade oder wird eine Überholung als auch der Code benötigen? – user1595112
Die Rückgabewerte weichen leicht voneinander ab, daher müssen Sie Ihren Code entsprechend anpassen. – Greg