לא נפתר איך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?
-
@לעזור-לכולם אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
@שמואל-ש
מחכה לעדכון האם זה כבר עובדהוא מקליט, אבל אח"כ אין מענה...
אגב, ההקלטה שנוצרת היא בשם 0 ולא 000, למה? וזה קשור? -
@לעזור-לכולם אני זז לדקה וכבר חוזר.
סורי -
@לעזור-לכולם בדקת מה יכול להיות הטעות?
-
@שמואל-ש אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
אני רוצה בפקודת API להעתיק קובץ ממערכת אחת לשניה, איך אפשר?
יצרתי סקריפט בפייתון שעושה את זה,
משהו טיפה יותר משוכלל,
עם קובץ בשלוחה הראשית ששם אתה כותב את הנתיבים של השלוחות שאתה רוצה שאסרוק,
ואז כל כמה דקות אני סורק את השלוחות ואני מוריד את הקבצים אליי, ואז מעלה אותם למערכת השניה,וישר אחרי זה מוחק ממני,
בניתי אופציה להגדיר כל כמה זמן לסרוק (מינימום 3 דקות) וזה משתנה ישר בסריקה הבאה,
אם אתה רוצה (בתשלום) תשלח מייל ל cs@mgmivr.com
ניתן גם לפתח שכל קובץ חדש יעלה לדרייב\ ישלח למייל וכו -
@MGM-IVR תודה, אבל כרגע התחלתי לעשות משהו לבד, אז אני יותר בכיוון לתקן את זה (כמו ש @לעזור-לכולם עזר לי פה) מלשלם.
-
@שמואל-ש
בלי קשר לאמור לעיל
אם אתה מריץ את הקובץ PHP על שרת פרטי שלך
ויש לך גישה לשורת הפקודה שלו
יש אפשרות פשוטה וקלה להעביר קבצים ממערכת אחת לאחרת באמצעות ftp בשורת הפקודה (בדומה לFilaZilla של ויינדוס). ניתן להריץ את הפקודה גם דרך קובץ PHP
שורה אחת להורדת הקובץ, ושורה אחת להעלאת הקובץ
(חוסף בקוד, וכמובן במשאבים ובזמן ריצה) -
@amp-Software-0
1.אין לי את פרטיי ה-FTP של השני
2.האם הוא יכול לעשות את זה אוטומטית כל הזמן בזמן אמת-שיריץ כל הזמן אם יש קובץ במיקום פלוני שיוריד אותו ויעלה אותו למערכת השניה? -
- תבקש מימות ftp גם לשני..
- שוב דבר לא קורה בלי טריגר, אתה תצטרך או להגדיר בשרת תזמון להריץ את הקוד הזה כל דקה, או להגדיר שהוספת הקובץ במערכת תפעיל את הקוד הזה
-
@amp-Software-0 אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
או להגדיר שהוספת הקובץ במערכת תפעיל את הקוד הזה
איך?
ובא נראה, אולי @לעזור-לכולם או מישהו אחר יעלה על הבעיה בקוד אז ננסה את שלי, ואם לא אז הרעיון שלך נראה לי רעיון יפה
-
@שמואל-ש אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
איך?
מעבר לשלוחת API שקוראת לקובץ PHP
-
@amp-Software-0 יש לך כזה דבר מוכן?
-
@שמואל-ש אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
2.האם הוא יכול לעשות את זה אוטומטית כל הזמן בזמן אמת-שיריץ כל הזמן אם יש קובץ במיקום פלוני שיוריד אותו ויעלה אותו למערכת השניה?
אם תבדוק כל הזמן האם יש קובץ חדש...
תריץ לולאה אין סופית -
@MGM-IVR מה זאת אומרת לולאה אין סופית? אתה צריך סשן כל שהוא שיפעיל אותה
חוץ מזה שכמובן זה לא תקין בעליל מבחינת ביצועים. -
@amp-Software-0 אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
@MGM-IVR מה זאת אומרת לולאה אין סופית? אתה צריך סשן כל שהוא שיפעיל אותה
חוץ מזה שכמובן זה לא תקין בעליל מבחינת ביצועים.הוא לא ביקש דרך שתשמור על השרת..
הוא ביקש שיבוק כל הזמן אם יש קובץ ואם כן להעביר,
אז כתבתי לו איך עושים את זה,
לא ככה צריך לעשות, ולא ככה נכון לעשות,
אבל אם זה מה שהוא רוצה אז זה מה שאפשר לעשות.@amp-Software-0 אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
אתה צריך סשן כל שהוא שיפעיל אותה
אני לא יודע באיזה שפה בדיוק מדובר כדי לכתוב לך דוגמת קוד כזאת.
אבל למשל לולאה שרצה כל עוד 1 קטן מ2 או כל עוד true, היא לולאה אין סופית. -
@MGM-IVR אני לא בטוח שהבנת מה התכוונתי
אני יודע היטב מה זה לולאה אין סופית.. אין צורך להסביר
השאלה היא מי יריץ את הלולאה הזו, לדוגמא, אם אתה תריץ דף php בדפדפן אז אחרי זמן כל שהוא שהוא לא מחזיר כלום הוא פשוט יחזיר טיימאוט
אין אפשרות להריץ סקריפט כל שהוא בלי טריגר מפעיל וטריגר מסיים
מקוה שהובנתי -
@שמואל-ש
זה קוד מוכן להעברת קבצים בין שני מערכות
אתה צריך לעדכן את המשתנים למארח, משתמש וסיסמה של שני המערכות
וכן לציין את הנתיב ואת שם הקובץ להעברה, וכן את הנתיב לשמירה
צורת הפעולה היא:- הורדת הקובץ ממערכת A לתיקיה זמנית בשרת
- העלאת הקובץ מהתיקיה הזמנית בשרת למערכת B
- מחיקת הקובץ מהתיקיה הזמנית
(לא ידוע לי על טרנספומציה בין שני שרתי ftp בלי תיווך של תיקית לוכלית)
<?php //מארח מערכת 1 $ivr1_HOST = "ftp.ymta.freeivr.co.il"; //משתמש מערכת 1 $ivr1_USER = "0773137770"; // סיסמה מערכת 1 $ivr1_PASS = "abcdefghijklmnopkrstuvwxyz"; // תיקיה בה מאוחסן הקובץ להעברה $ivr1_FOLDER = "/ivr/test"; //שם הקובץ להעברה כולל סיומת $FILE = "test.wav"; //מארח מערכת 2 $ivr2_HOST = "ftp.ymta.freeivr.co.il"; //משתמש מערכת 2 $ivr2_USER = "0773137770"; //סיסמה מערכת 2 $ivr2_PASS = "abcdefghijklmnopkrstuvwxyz"; //תיקיה לשמירת הקובץ המועבר $ivr2_FOLDER = "/ivr/test1"; //התחברות לשרת ftp מערכת 1 $ftp_conn_ivr1 = ftp_connect($ivr1_HOST); ftp_login($ftp_conn_ivr1, $ivr1_USER, $ivr1_PASS); //קבלת הקובץ לתיקיה זמנית בשרת ftp_get($ftp_conn_ivr1, "/tmp/$FILE", "$ivr1_FOLDER/$FILE", FTP_ASCII); //סגירת חיבור ftp ftp_close($ftp_conn_ivr1); // התחברת לשרת ftp מערכת 2 $ftp_conn_ivr2 = ftp_connect($ivr2_HOST); ftp_login($ftp_conn_ivr2, $ivr2_USER, $ivr2_PASS); //העלאת הקובץ מתיקיה זמנית בשרת ftp_put($ftp_conn_ivr2, "$ivr2_FOLDER/$FILE","/tmp/$FILE", FTP_ASCII); //סגירת החיבור ftp ftp_close($ftp_conn_ivr2); //מחיקת הקובץ הזמני unlink("/tmp/$FILE");
תשמור את זה בקובץ PHP ותיצור שלוחה שתקרא לקובץ הזה אחרי כל שמירה של קובץ כל שהוא במערכת A
או לחילופין תיצור טריגר שיריץ את הקובץ הזה כל דקה
כמובן שאם שם הקובץ לא ידוע מראש תצטרף להוסיף כאן איזושהיא פונקציה שתגדיר תחילה את שם הקובץ -
@amp-Software-0 אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
@MGM-IVR אני לא בטוח שהבנת מה התכוונתי
אני יודע היטב מה זה לולאה אין סופית.. אין צורך להסביר
השאלה היא מי יריץ את הלולאה הזו, לדוגמא, אם אתה תריץ דף php בדפדפן אז אחרי זמן כל שהוא שהוא לא מחזיר כלום הוא פשוט יחזיר טיימאוט
אין אפשרות להריץ סקריפט כל שהוא בלי טריגר מפעיל וטריגר מסיים
מקוה שהובנתילמשל תשמור קובץ filename.php
<?php while(1<2){ print "hi"; } ?>
ואז תעשה ב terminal
php filename.php
וזה ירוץ אינסופי עד שתעצור את שורת הפקודה,
ואם יש לך דוקר (docker) אז אתה מריץ מהשרת וזה רץ כל הזמן -
@amp-Software-0 אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
ותיצור שלוחה שתקרא לקובץ הזה
איך? משהו כמו זה
<?php { $ss = uploadFile(); } ?>
??
-
@amp-Software-0 אמר באיך אפשר בפקודת API להעתיק קובץ ממערכת אחת למערכת אחרת (שניהם בבעלותי כמובן)?:
משתמש וסיסמה של שני המערכות
הבעיה היא, שבפרטים שמקבלים מימות המשיח לגישה ל-ftp, מקבלים שם משתמש וסיסמה שהם מיועדים עבור כל המערכות שביקשו ולא מיוחד למערכת אחת, אז לאיפה אני מכניס את מספר המערכת הספציפית?
-
@amp-Software-0 הרצתי את הקובץ עצמו בדפדפן, ולמעשה לא נהיה כלום!
הכנסתי בנתיב הקובץ, אחרי הסלש הראשון הכנסתי את מספר המערכת ואחריו את הנתיב.
אגב, שים לב שלא שמת בסוף?>