Ich erstelle dynamisch Ordner mit Bildern in meinem öffentlichen Verzeichnis, das ungefähr so aussieht public/indiv/compa/ferfw432ervr12/test.png
. Ich möchte das Verzeichnis indiv
löschen. Ich habe versucht, Heroku Run Bash zu tun. und verwendete rm
, um das Verzeichnis zu löschen. Ich tat ls
nach und ich konnte die Datei nicht finden, also dachte ich, dass alles gut war, aber ich konnte das Bild noch sehen, wenn ich zur URL gehe, also tat ich heroku run bash
und die Akten sind noch dort. Ich will, dass sie weg sind.Wie lösche ich statische Dateien oder Verzeichnisse von Heroku?
Ich habe auch so etwas wie dieses:
var deleteFolderRecursive = function(path) {
if(fs.existsSync(path)) {
fs.readdirSync(path).forEach(function(file,index){
var curPath = path + "/" + file;
if(fs.lstatSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
Es sieht es Dateien aus lokalen gelöscht, aber nicht Heroku, auch nachdem ich tat git push heroku master
'Es ist sehr unwahrscheinlich, dass Sie einen Anwendungsfall haben, der das wirklich rechtfertigt. Ich werde Ihnen sagen, warum ich es mache. vielleicht kannst du mir sagen, ob es "gerechtfertigt" ist oder ich werde dir nur mehr Informationen geben. Ich benutze den Feed-Dialog auf Facebook für eine Rezensionsseite. Nachdem der Benutzer eine Rezension eingegeben und auf die fb share-Taste geklickt hat, wird "fb.api" ausgelöst. Dort sage ich, dass es ein Bild finden soll, das gerade auf der Schaltfläche "share" geklickt wurde. Ich sage der FB API, dass sie zu dem einzelnen Bild gehen soll, das gerade erstellt wurde. Ich dachte, das wäre gut, da es Standard ist, Bilder in öffentlichen Ordnern zu behalten. . –
Ich denke du sagst, dass ich die Bilder nicht auf heroku setzen soll. Ich denke, du sagst, wenn ich mehrere Dynos habe, würde es Probleme verursachen. sollte ich stattdessen etwas wie http://cloudinary.com/ verwenden. Ich muss sicherstellen, dass die Bilder in Cloudinary geladen werden, bevor FB API aufgerufen wird. BTW, ich löschte die Dateien mit "fs-Pfad" npmj –
Wie Sie richtig erwähnt haben, funktioniert die Verwendung des ephemeren Dateisystems nicht, wenn Sie mehrere Dynos haben, und wird nicht zuverlässig für Ihren Anwendungsfall sogar mit einem Prüfstand sein, Da Ihr One-Dynode jederzeit ohne Warnung recyceln kann und die von Ihnen gespeicherte Datei nicht mehr vorhanden ist. Sie sollten einen externen Backing-Service für Ihre Bilder verwenden. Ich bin mit cloudinary.com nicht vertraut, aber das könnte eine geeignete Wahl sein. Werfen Sie einen Blick auf Heroku Elements für andere Möglichkeiten. Viel Glück! –