Οδηγοί

Πώς να προσθέσετε ανέβασμα αρχείων στην εφαρμογή σας: αποθήκευση, όρια και ασφάλεια

Για να προσθέσετε ανέβασμα αρχείων στην εφαρμογή σας, αποθηκεύστε τα αρχεία σε αποθηκευτικό χώρο αντικειμένων (bucket), όχι στον δίσκο του διακομιστή ή μέσα στη βάση δεδομένων, και αποθηκεύστε μια μικρή εγγραφή στη βάση με το κλειδί του αρχείου, το όνομα, το μέγεθος, τον τύπο και τον ιδιοκτήτη. Ελέγξτε το μέγεθος και τον τύπο του αρχείου στον server, αποφασίστε από την αρχή αν τα αρχεία είναι δημόσια (όπως φωτογραφίες προϊόντων) ή ιδιωτικά (όπως τιμολόγια), και σερβίρετε τα ιδιωτικά μόνο αφού ελέγξετε ποιος τα ζητά. Σε εργαλείο κατασκευής AI, μπορείτε να περιγράψετε τη λειτουργία ανεβάσματος σε ένα prompt· το σημαντικό είναι να ελέγξετε ότι τα αρχεία επιβιώνουν από επανα-ανάπτυξη και δεν μπορεί να τα ανοίξει ο λάθος άνθρωπος.

Αποφασίστε τι είδους ανεβάσματα χρειάζεστε

Πριν χτίσετε, απαντήστε σε τρεις ερωτήσεις:

  1. Ποια αρχεία; Φωτογραφίες προφίλ, εικόνες προϊόντων, PDF, υπολογιστικά φύλλα, ήχος, βίντεο. Αυτό καθορίζει τα όρια τύπου και μεγέθους.
  2. Ποιος μπορεί να τα δει; Όλοι (μια δημόσια συλλογή) ή μόνο ο ανεβάσας και οι διαχειριστές (συμβόλαια, έγγραφα ταυτότητας, αρχεία πελατών).
  3. Τι συμβαίνει μετά το ανέβασμα; Απλώς αποθήκευση, εμφάνιση προεπισκόπησης, αλλαγή μεγέθους εικόνων ή ανάγνωση του περιεχομένου.

Οι δημόσιες εικόνες και τα ιδιωτικά έγγραφα χρειάζονται διαφορετικές ρυθμίσεις, οπότε κλειδώστε αυτό πρώτα.

Πού πρέπει να μένουν τα αρχεία

ΕπιλογήΠώς λειτουργείΚατάλληλη γιαΠροσέξτε
Αποθηκευτικός χώρος αντικειμένων (bucket)Αρχεία σε υπηρεσία φτιαγμένη γι' αυτά· η βάση σας αποθηκεύει κλειδί ή URLΣχεδόν κάθε εφαρμογήΟι κανόνες πρόσβασης πρέπει να είναι σωστά ρυθμισμένοι
Αποθήκευση που παρέχει η πλατφόρμαΤο εργαλείο κατασκευής ή η φιλοξενία ενεργοποιεί bucket για σαςΕφαρμογές χτισμένες σε αυτή την πλατφόρμαΤα όρια και η τιμολόγηση ακολουθούν την πλατφόρμα
Δίσκος διακομιστήΑρχεία γραμμένα στο σύστημα αρχείων του διακομιστήΜόνο τοπική ανάπτυξηΣυχνά διαγράφονται σε επανεκκίνηση ή επανα-ανάπτυξη
Μέσα στη βάσηΤα bytes του αρχείου αποθηκευμένα σε πίνακαΣχεδόν ποτέΦουσκώνει τη βάση, επιβραδύνει τα backups
Widget ανεβάσματος τρίτουΜια φιλοξενούμενη υπηρεσία χειρίζεται όλη τη ροήΒαριά πολυμέσα, μετασχηματισμοί εικόνωνΈνας ακόμη προμηθευτής, λογαριασμός και χρέωση

Για τις περισσότερες εφαρμογές, το αντικείμενο αποθήκευσης μαζί με μια εγγραφή στη βάση είναι η σωστή απάντηση. Η εγγραφή της βάσης είναι αυτό που ρωτά η εφαρμογή («δείξε τα έγγραφα αυτού του χρήστη»)· το bucket απλώς κρατά τα bytes.

Δημόσια έναντι ιδιωτικών αρχείων

  • Δημόσια αρχεία (φωτογραφίες προϊόντων, εικόνες άρθρων, avatars) μπορούν να σερβίρονται από δημόσιο URL. Όποιος έχει τον σύνδεσμο μπορεί να τα ανοίξει, κάτι που είναι εντάξει για τέτοιο περιεχόμενο.
  • Ιδιωτικά αρχεία (τιμολόγια, συμβόλαια, ιατρικά ή έγγραφα ταυτότητας, παραδοτέα πελατών) δεν πρέπει ποτέ να έχουν εύκολα μαντεύσιμο δημόσιο URL. Ο server ελέγχει ότι ο συνδεδεμένος χρήστης είναι ιδιοκτήτης του αρχείου ή έχει άδεια, και μετά είτε το στέλνει ή επιστρέφει έναν υπογεγραμμένο URL: σύνδεσμο που ισχύει μόνο για λίγο.

Ένα συχνό και σοβαρό λάθος είναι τα ιδιωτικά αρχεία σε δημόσιο bucket με προβλέψιμα ονόματα. Όποιος μαντέψει το /uploads/invoice-102.pdf παίρνει το τιμολόγιο κάποιου άλλου.

Παραδείγματα prompts

Ανέβασμα δημόσιας εικόνας:

Επίτρεψε στους διαχειριστές να ανεβάζουν έως 5 φωτογραφίες προϊόντος ανά προϊόν. Δέξου JPG, PNG και WebP έως 5 MB το καθένα. Αποθήκευσε τα αρχεία στον χώρο αποθήκευσης αρχείων, κράτα το κλειδί, το μέγεθος και τη σειρά κάθε αρχείου σε πίνακα product_images και δείξε μικρογραφίες με κουμπί αφαίρεσης. Έλεγξε τον τύπο και το μέγεθος στον server, όχι μόνο στον browser.

Ανέβασμα ιδιωτικού εγγράφου:

Πρόσθεσε σελίδα Έγγραφα για συνδεδεμένους πελάτες. Οι πελάτες μπορούν να ανεβάζουν PDF έως 20 MB. Τα αρχεία είναι ιδιωτικά: αποθήκευσέ τα στον χώρο αποθήκευσης αρχείων, κράτα το ID ιδιοκτήτη, το αρχικό όνομα αρχείου, το μέγεθος και την ώρα ανεβάσματος σε πίνακα documents, και άφησε μόνο τον ιδιοκτήτη και τους διαχειριστές να κατεβάζουν. Τα κατεβάσματα περνούν από διαδρομή του server που ελέγχει τα δικαιώματα. Ποτέ μην εκθέτεις δημόσιο URL για αυτά τα αρχεία.

Χρήσιμες συνέχειες:

Δείξε γραμμή προόδου κατά το ανέβασμα και καθαρό μήνυμα λάθους αν το αρχείο είναι πολύ μεγάλο ή λάθος τύπου.

Όταν διαγράφεται μια εγγραφή εγγράφου, διέγραψε και το αποθηκευμένο αρχείο.

Βήμα προς βήμα

  1. Ορίστε τύπους και όρια μεγέθους για κάθε πεδίο ανεβάσματος. Να είστε συγκεκριμένοι: «PDF έως 20 MB», όχι «έγγραφα».
  2. Ενεργοποιήστε την αποθήκευση. Σε εργαλείο AI, ζητήστε ανεβάσματα και θα στήσει την αποθήκευση· αλλού, δημιουργήστε bucket και προσθέστε τα διαπιστευτήριά του ως μυστικά του server.
  3. Δημιουργήστε πίνακα βάσης για τις εγγραφές αρχείων: ID, ιδιοκτήτης, κλειδί αποθήκευσης, αρχικό όνομα, τύπος, μέγεθος, χρόνος δημιουργίας.
  4. Χτίστε τη διαδρομή ανεβάσματος στον server: ελέγξτε ότι ο χρήστης είναι συνδεδεμένος, ελέγξτε τύπο και μέγεθος, δημιουργήστε ασφαλές κλειδί αποθήκευσης (όχι το όνομα αρχείου του χρήστη), αποθηκεύστε το αρχείο και εισάγετε την εγγραφή.
  5. Χτίστε τη διαδρομή κατεβάσματος ή προβολής: δημόσιο URL για δημόσια αρχεία· διαδρομή με έλεγχο δικαιωμάτων ή υπογεγραμμένο URL για ιδιωτικά.
  6. Χτίστε τη διεπαφή: επιλογέας αρχείου, σύρε-και-άφησε αν θέλετε, πρόοδος, προεπισκοπήσεις, μηνύματα λάθους.
  7. Διαχειριστείτε τις διαγραφές, ώστε η αφαίρεση μιας εγγραφής να αφαιρεί και το αποθηκευμένο αρχείο.
  8. Δοκιμάστε: ανεβάστε, ανανεώστε, δημοσιεύστε ή επανα-αναπτύξτε και ελέγξτε ότι το αρχείο φορτώνει ακόμα. Μετά συνδεθείτε ως άλλος χρήστης και προσπαθήστε να ανοίξετε το ιδιωτικό αρχείο του πρώτου.

Συχνά λάθη

  • Γράφετε τα ανεβάσματα στον δίσκο του διακομιστή. Λειτουργεί στην ανάπτυξη, μετά τα αρχεία χάνονται μετά από επανεκκίνηση ή επανα-ανάπτυξη.
  • Εμπιστεύεστε τους ελέγχους του browser. Η ιδιότητα «accept» του πεδίου αρχείου είναι υπόδειξη, όχι ασφάλεια. Ελέγξτε τύπο και μέγεθος στον server.
  • Χρησιμοποιείτε το όνομα αρχείου του χρήστη ως κλειδί αποθήκευσης. Τα ονόματα συγκρούονται και μπορεί να περιέχουν περίεργους χαρακτήρες. Δημιουργήστε μοναδικό κλειδί και αποθηκεύστε το αρχικό όνομα χωριστά.
  • Δημόσια buckets για ιδιωτικά αρχεία. Δείτε παραπάνω· αυτό είναι το λάθος που γίνεται είδηση.
  • Επιτρέπετε κάθε τύπο αρχείου. Αρχεία HTML ή SVG που σερβίρονται από τον δικό σας τομέα μπορούν να τρέξουν scripts σε ορισμένες ρυθμίσεις. Δεχθείτε μόνο τους τύπους που χρειάζεστε.
  • Χωρίς όριο μεγέθους. Ένα τεράστιο ανέβασμα μπορεί να φάει το αποθηκευτικό σας όριο ή να προκαλέσει timeout στο αίτημα.
  • Ορφανά αρχεία. Η διαγραφή της εγγραφής στη βάση χωρίς το αρχείο γεμίζει σιγά σιγά αποθήκευση για την οποία πληρώνετε.
  • Ξεχασμένο κινητό. Οι φωτογραφίες από τηλέφωνα μπορεί να είναι μεγάλες και σε μορφές όπως HEIC· αποφασίστε αν θα τις δέχεστε ή θα τις μετατρέπετε.

Λίστα ελέγχου

  • Τα αρχεία πηγαίνουν σε αποθηκευτικό χώρο αντικειμένων, όχι στον δίσκο του διακομιστή ή στη βάση
  • Κάθε αρχείο έχει εγγραφή στη βάση με ιδιοκτήτη, κλειδί, όνομα, τύπο και μέγεθος
  • Ο τύπος και το μέγεθος ελέγχονται στον server
  • Τα κλειδιά αποθήκευσης δημιουργούνται, δεν παίρνονται από το όνομα αρχείου
  • Τα ιδιωτικά αρχεία σερβίρονται μόνο μετά από έλεγχο δικαιωμάτων
  • Άλλος χρήστης δεν μπορεί να ανοίξει τα ιδιωτικά σας αρχεία, ακόμη και με τον σύνδεσμο
  • Η διαγραφή εγγραφής διαγράφει και το αρχείο
  • Τα αρχεία φορτώνουν ακόμα μετά τη δημοσίευση ή την επανα-ανάπτυξη
  • Τα μηνύματα λάθους ανεβάσματος εμφανίζονται καθαρά, και στο κινητό

Ανέβασμα αρχείων στο Mythex

Το Mythex μπορεί να ενεργοποιήσει αποθήκευση αρχείων για ένα έργο αυτόματα όταν η εφαρμογή χρειάζεται ανεβάσματα, ώστε να μην στήνετε bucket με το χέρι. Μπορείτε επίσης να πληκτρολογήσετε /storage στη συνομιλία. Είναι διαθέσιμη στα πακέτα Free και Pro, με όριο 1 GB στο Free, και το status της φαίνεται στις Ρυθμίσεις → Αποθήκευση.

Η τεκμηρίωση λέει ξεκάθαρα ότι η δημοσιευμένη φιλοξενία δεν είναι μόνιμο τοπικό σύστημα αρχείων, οπότε ζητήστε από τον agent να χρησιμοποιεί την αποθήκευση της πλατφόρμας και όχι τον δίσκο. Τα αποθηκευμένα αρχεία και τα κατεβάσματα χρεώνονται από το υπόλοιπο credits σας, ανάλογα με το μέγεθος και πόσο κατεβάζεται· το Pro πληρώνει τη μισή τιμή του Free. Δείτε Αποθήκευση αρχείων στην τεκμηρίωση.

Τα ανεβάσματα συνήθως συνοδεύουν μια βάση δεδομένων για τις εγγραφές αρχείων και σύνδεση για ιδιωτικά αρχεία. Αν χτίζετε χώρο όπου πελάτες ανταλλάσσουν έγγραφα, δείτε πώς να φτιάξετε πύλη πελατών, και περάστε από τον οδηγό ασφαλείας πριν την κυκλοφορία.

Ερωτήσεις

Πού πρέπει να αποθηκεύονται τα ανεβασμένα αρχεία;

Σε αποθηκευτικό χώρο αντικειμένων (object storage), δηλαδή υπηρεσία φτιαγμένη για αρχεία, που συχνά λέγεται bucket, και όχι στον δίσκο του διακομιστή της εφαρμογής ούτε μέσα στη βάση δεδομένων. Στη βάση σας αποθηκεύετε μόνο το κλειδί ή το URL του αρχείου, μαζί με στοιχεία όπως όνομα, μέγεθος και ιδιοκτήτη.

Γιατί τα ανεβασμένα αρχεία μου εξαφανίζονται μετά τη δημοσίευση ή την επανα-ανάπτυξη;

Οι περισσότερες πλατφόρμες φιλοξενίας δεν διατηρούν μόνιμο τοπικό δίσκο: όταν η εφαρμογή επανεκκινείται ή αναπτύσσεται ξανά, χάνονται τα αρχεία που είχαν γραφτεί στον δίσκο της. Αποθηκεύστε τα ανεβάσματα σε αποθηκευτικό χώρο αντικειμένων.

Πώς κρατάω τα ανεβασμένα αρχεία ιδιωτικά;

Μην τα κάνετε δημόσια αναγνώσιμα. Ο server σας ελέγχει ότι ο συνδεδεμένος χρήστης επιτρέπεται να δει ένα αρχείο και μετά το στέλνει ή επιστρέφει έναν προσωρινό υπογεγραμμένο σύνδεσμο.

Υποστηρίζει το Mythex ανέβασμα αρχείων;

Ναι. Το Mythex μπορεί να ενεργοποιήσει αποθήκευση αρχείων για ένα έργο όταν η εφαρμογή χρειάζεται ανεβάσματα, στα πακέτα Free και Pro, με όριο 1 GB στο Free. Ζητάτε από τον agent τη λειτουργία ανεβάσματος ή πληκτρολογείτε /storage.

Mythex · Pricing · Χτίστε οτιδήποτε με AI · Πρότυπα ιστοσελίδων και εφαρμογών · Το Mythex σε σύγκριση · Γλωσσάρι δημιουργίας εφαρμογών με AI · Δωρεάν εργαλεία δημιουργίας εφαρμογών με AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)