ביומיים האחרונים עברתי סאגה מתישה וביליתי שעות רבות בתיקיית ה-files.
המשימה: להעביר אתר עם אלפי(!) קבצי תמונה משרת אחד למישנהו.
הבעיה: מדובר בקבצים שהועלו ע"י עשרות יוזרים שונים, כל אחד עם שמותיו הלא-קריאים-ע"י-מכונה, ובעיקר הרבה תוים בעברית, רווחים ואותיות גדולות בסיומת הקובץ. מהר מאוד הסתבר שהעניין הזה הוא צרה צרורה, קבצים כאלה פשוט לא הסכימו לעבור משרת לשרת.
הפתרון: בצר לי הלכתי לחפש מודול שיציל את המצב (תמיד יש איזה מודול שמציל את המצב, נכון? - חבל שזה לא עובד ככה גם בחיים), ובחיפושיי מצאתי את המודול הנפלא FileField Paths שיחד עם Token הנפלא בפניי עצמו גאלו אותי מיסוריי והראו לי את דרך המלך. המדובר במודול שמאפשר לשנות את שם הקובץ ממש בזמן העלאתו דרך ImageField או כל שדה אחר שמשתמש ב- FileField. את השמות אפשר לקבוע לפי רצונכם תוך שימוש ב-Token. עוד מאפשר המודול גם להפוך סיומות קובץ מאותיות גדולות לאותיות קטנות, וגולת הכותרת: הוא אפילו פועל רטרואקטיבית!
אמנם כותבי המודול טרחו להזהיר מפני פעולה רטרואקטיבית שעלולה לשבור לינקים והמליצו להשתמש באופציה הזו רק באתר בפיתוח. המשימה שלי בוצעה על אתר חי, אבל אני כבר הייתי נואשת והחלטתי לקחת את הסיכון. גיביתי במקומות הנכונים ויצאתי לדרך. שמעו, תוך 5 דקות כל הקבצים באתר שינו שמותיהם לשמות אחידים, תקניים וקריאים ע"י מחשב, שום לינק לא נשבר ואפילו ImageCache הגיב לתהליך בחיוב. ובא לציון גואל!
אני לא יודעת מה איתכם, אבל מבחינתי המודול הזה הופך להיות מודול חובה מעכשיו בכל אתר. תיקיית ה-files שלי מעולם לא נראתה כל כך טוב.
תודה על הטיפ!
מוסיף למועדפים. למה אין פה לייק?...
| פרקטיקול - בונים לך אתר דרופל | קורס דרופל! | עזרה מידית בקבוצה שלנו בפייסבוק! | מכללת קוד פתוח
rsync
היה פותר לך את הבעיה בקלות. זה כבר מותקן על השרת שלך.
חבל שלא שאלת קודם... (כאילו שהיה לי אינטרנט באמצע היער.. אבל מישהו כבר היה עונה לך).
היה לי ברור
שאני עשויה ללמוד כאן משהו חדש בעקבות פרסום הפוסט הזה, וכמובן שאני לא מתפלאה שזה מגיע דווקא ממך.
אז אם כבר טרחת להתחבר לציויליזציה ממעבה היער, אנא הואל בטובך ותסביר לי מה זה rsync ומה בדיוק אני אמורה לעשות איתו (וגם איך זה שחברת האחסון לא ידעה על זה?)
ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
זהו פרוטוקול (שממומש בלינוקס
זהו פרוטוקול (שממומש בלינוקס ע"י התוכנה באותו שם, שמותקנת לדעתי בכל ההפצות המודרניות כברירת מחדל) שמטרתו לסנכרן בין שתי תיקיות קבצים - (אחת יכולה להיות מרוחקת). הוא ידאג לכך שהתיקיות יסתנכרנו במינימום העברת נתונים - כך שלמשל אם השתנו שני קבצים, ונוסף קובץ אחד מאז ההרצה הקודמת, רק השינויים יעברו.
זה בגדול, גוגל יעזור לך יותר כאן. יש המון מדריכים באנגלית, הנה אחד בעברית של אילן שביט: http://ilsh.info/archives/379
תודה
אכן מאיר עיניים, אבל נדמה לי שזה לא בדיוק היה הפתרון לבעיה שלי.
הבעיה היתה בשמות הקבצים. משום מה (ואני עדיין לא מצליחה להבין את זה עד הסוף) שמות עם תוים בעברית, רווחים או סיומת אותיות גדולות פשוט נתקעו על השרת וסירבו לרדת למחשב שלי או לעבור לשרת השני. זה היה כאילו שם הקובץ משבש לו את הנתיב והוא לא מצא אותו.
ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
אין בעיה כזו בלינוקס. rsync
אין בעיה כזו בלינוקס. rsync יאכל כל שם קובץ בלי בעיה.
שימוש ב private files לפיתרון שמות קבצים בעברית, ומה קורה ב wamp
בפרוייקט אינטראנט שעשינו, מערכת דרופל הותקנה על wamp
אצל הלקוח.
בבדיקות התגלה כי קבצים בעלי שם קובץ בעברית לא ירדו דרך קישור
ישיר אליהם.
לפיכך חיפשנו מודול מתאים ובדקנו את מודול transliteration
http://drupal.org/project/transliteration
המודול הזה פותר את הבעייה על ידי החלפה אוטומטית של אותיות בכל שפה
עם אותיות באנגלית וגם תומך בעברית.
הפיתרון לא מצא חן בעיננו היות והלקוח מעלה קובץ בשם אחד ורואה אותו בשם
אחר (לעיתים חסר משמעות) באנגלית.
פיתרון אחר אפשרי הוא להגדיר בדרופל את מערכת הקבצים כ private ואז אין קישור ישיר לקבצים
אלא דרך דרופל. (יש לזכור שלאחר ההגדרה הזו יש ליצור שדה חדש לקובץ שמוגדר
כ private כי לא ניתן להחליף את השדה המקורי לסוג זה)
(דרך אגב הגדרת השדה כ private פותרת את הבעייה בלינוקס.)
העניין עבד ושמחים וטבי לב הודענו ללקוח כי פתרנו את הבעייה.
הלקוח טען שעדיין יש בעייה.
בבדיקה נוספת הסתבר שהלקוח מתעקש לעבוד באקספלורר שתומך בדרכו המיוחדת
בעברית על wamp כל כך מיוחדת שהקבצים נשמרים עם שמות מוזרים.
ניסינו לשנות את encoding של שמות הקבצים לפני השמירה וזה לא עזר.
בסוף הודענו ללקוח שישתמש בשמות קבצים באנגלית או שישתמש בפיירפוקס.
הוא העדיף שמות קבצים באנגלית.
יואב קלי
מנהל הפיתוח
softtailors.com
"או שישתמש בפיירפוקס"...
אהבתי!
| פרקטיקול - בונים לך אתר דרופל | קורס דרופל! | עזרה מידית בקבוצה שלנו בפייסבוק! | מכללת קוד פתוח