การซิงค์ข้อมูลผ่านโปรโตคอลไฟล์

ในส่วนนี้ เราระบุโปรโตคอลที่ CitrusAd รองรับและวิธีการตั้งชื่อไฟล์เพื่อให้ CitrusAd สามารถดาวน์โหลดไฟล์ข้อมูลจากเซิร์ฟเวอร์ของคุณโดยอัตโนมัติ

โปรโตคอล

CitrusAd รองรับหลายวิธีเรียกดูไฟล์ข้อมูล ควรเก็บไฟล์ข้อมูลไว้ในเซิร์ฟเวอร์ของคุณ และไฟล์จะถูกดาวน์โหลดผ่านโปรโตคอลมาตรฐานตัวใดตัวหนึ่ง

ปัจจุบัน CitrusAd รองรับการดาวน์โหลดไฟล์ข้อมูลผ่านโปรโตคอลต่อไปนี้:

  • GCS
  • SFTP
  • SCP
  • HTTPS

โดยทั่วไป คุณจะต้องให้ข้อมูลเกี่ยวกับโปรโตคอล โฮสต์ พอร์ต และพาธไฟล์ของไฟล์ข้อมูลเพื่อให้ CitrusAd ดาวน์โหลดได้ เมื่อจำเป็นต้องมีการรับรองความถูกต้องเพื่อดาวน์โหลดไฟล์ข้อมูล คุณจะต้องระบุข้อมูลประจำตัวของ CitrusAd (เช่น ชื่อผู้ใช้และรหัสผ่าน) เพื่อรับรองความถูกต้องกับระบบของคุณ

หากคุณกำลังใช้โปรโตคอล SFTP CitrusAd รองรับการตรวจสอบสิทธิ์สองประเภทเพื่อดาวน์โหลดไฟล์ข้อมูล:

  • ชื่อผู้ใช้และรหัสผ่าน
  • คีย์สาธารณะของ CitrusAd

ในการรับรองความถูกต้องประเภทที่สอง จะต้องติดตั้งคีย์สาธารณะด้านล่างลงในเซิร์ฟเวอร์ SFTP ของคุณ

การสร้างเว็บจำลอง:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDMd4w5Z6hsjlUc0/r3dTJ+IaM9Mm+l3ZTrX3D5+30ZNiAb3Mhvlp8gv37CFKzqM90oFejl15bbr5dymjycsOWInxqkMyLOTbdMFAk7hmicNvN5bt3tx/Z0UewNvAx0Uw9Qxu7SCMSAalk9l7dqLp5RFFj+RHq9ApV8KIA/Fw2mjCw2vrJhiRWeuUuNNQTbGFBA5y72ATeYA2p0ZK3/TTJxyxCL70zGVxFG0jdAurfXKujYaF73Ql/gl5wmtnxGvTORtvObQdc2jCTsynj1w17LSZAdeoPQGnQkVCk37ZUnWTw8s4RYjHFVunsTDxJO5Qnw5yj8oqhe5IdpQyavUj+otRd6900q/3dK60IELH6AFz+ZEqudlBh8ZO2hvHIDS2Ii5S3LunlejykAVdRl7RVHA17Pk3mmrHCS6i3n9ZliBYeVQiKme2jHVB+ESrHFxQWl3ct9MYFNlAqwuhTFQRSG9ioSEHX5Dnmqk8aqbm/4pYY4b7YHOcIpHrtrVrFTJ3vLM1If1OVrDQidFhi1ArmoCU+PO65jNSeMj27m/HoX7Mbcmi8F++Op3MgP8iJrohE0Wjz+use7nlDtQTtDxDeEQQYGqsz4DOtH/jn1TWRynaXZqwPqC5Q6b52QM22T+E3rgT/4G7yJU3IRKioByOck251MEtOEgSCvvIAaV685fQ==

การผลิต

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCtpIUFoYu8OUesZGP9rffv6/hky1HbQCAhC8hNRmcWpdptzRYsKIZFPz9t2vb85dierTZqJstAEJkePHd25cZ8btIBacbAR49avCIXiBuVgvlJk1+Er2dyYqSzSeFhpzlZxi4CkGo/Nsx7yxPi5693fdVF3vr+/iencw1tdLJJXfT6j1YLBCREg+IziBCO6m9P0QQGEDXYvsOmIzl0CJ8enU7gjvnYL5ify1/aGpoXv9/XcCYJWXTQmvmISknOMdC4pBiuDqsE9CX27FLQQb1ZT5jNrqD5hFsEo0rWqLiCbb5qoxIdMSe/IbA+sewgpgTPNJXeCNLSSH/MHhj2IgiMZGDDDaVaqMZD7N2jeQdI6SQbgvXiLTTUL4gNyO5eN9oqoeJumeZMi0+MQ7kkfHDYGtKe3RMxL7heL650HL+eWDIybezyPdQmfyVew9KuN0uB+2X+2NxQs8ZLqow486XDfUDfo+rPuoIvkYy7Z8ox+gne+1iAk43TCekcDwxlc56R9muMtGLuzzg1x9s9MqsAg5JNWEPQ8giAwCQJwm7h3UcCY3TJCn0LUzYHc7Ycr11JfIXL47vYGH3C0XBYlbEU/8m4VhhexzgJi8G/reclY5pfjtwQGOiobsxLsWgGx6Qoz/qWqmGwQIg+qi7jvA7jnltUP+RTFZpmd18/dSxB+w==

การผลิต:

การบีบอัดข้อมูลและการเข้ารหัส

คุณอาจต้องบีบอัดและเข้ารหัสข้อมูลก่อนที่จะอัปโหลดไปยังเซิร์ฟเวอร์ของคุณเพื่อทำการซิงค์ เมื่อใช้ทั้งการบีบอัดและการเข้ารหัสในไฟล์ข้อมูล CitrusAd จะถือว่าไฟล์ข้อมูลถูกบีบอัดก่อนการเข้ารหัส

เมื่อไฟล์ข้อมูลถูกเข้ารหัส CitrusAd จะถอดรหัสไฟล์ข้อมูลหลังจากที่ดาวน์โหลดแล้ว ปัจจุบัน เรารองรับการถอดรหัสข้อมูลสำหรับไฟล์ที่เข้ารหัสโดยโปรแกรม PGP ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัส PGP ได้ที่ https://tools.ietf.org/html/rfc4880

หากคุณเลือกใช้การเข้ารหัสประเภทนี้สําหรับไฟล์ข้อมูล คุณสามารถใช้คีย์สาธารณะด้านล่างเพื่อเข้ารหัสไฟล์ข้อมูลก่อนที่จะอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ของคุณ CitrusAd เท่านั้นที่สามารถถอดรหัสไฟล์ข้อมูลที่เข้ารหัสได้

คีย์สาธารณะ

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBFxmGOgBEAC1nFt5/7zo8Q3AaweOq4JlDzPxnil8f/EYnYccsuKLkqmAthC4
TvGssIHJ/NBUUBb07ylkBrdcQhHLwPhemqJekaEI3vSDA1+9DbxjbnSHp6BAkyhn
whWmDGttknun7chekKhR+ijH8qCz9xMIZNugdt5huJyevGcFduKH22Ad+4kU4xQf
FQBR/z++1cVDCWFQKloGX61faUKMr2eBvP2L3e71U6HVKuthVYZerzYFAXvl1LCW
UQ86fJIG9qOgvIEgPcHj8fpCE8QQ5z8RG4aPK6u40oPZUJ3uZSokJAjD/EZONKSG
8u6oX3BWVoABSS2iVhRz541nUGVdDX4xLl0vi4Lq0FXtk4t+SXXqiTENT6W/XL2o
6mfUqeMAPG0+TL1Pbk5Zq+xaeuWcXZ9hv58129XR2MXWHJz7d5EL0VmUmYOMIZWw
uzmRsQrVT+4QmYOFgPoa2U0fhmsNTXLw+oFt7tySoGtfC512D69GNp4GQzj8LSCL
P6Oxml4eueM/A0i8m7vOI2J1gfQArd/tFYYGg6oZ+heOgBvwrtCUd2QiWdg+jjHL
PA1avpnt517YvBi3smUUT90blBqjsaJIcDaehMjraJ4otvKegOtnbKUWyZuxNYun
zM1PSCKLLFojbhd3nMoqF+ZQP27bBCzYJc3zk7dzdwWiE7OX/ddBDj36WQARAQAB
tFZDaXRydXMgSW50ZXJuYXRpb25hbCAoUEdQIGtleSBmb3IgY2F0YWxvZyBlbmNy
eXB0aW9uIC0gUHJvZHVjdGlvbikgPGluZm9AY2l0cnVzYWQuY29tPokCTgQTAQgA
OBYhBOgn+S5kYTP5OK9o9ZD+RIlYHzF5BQJcZhjoAhsDBQsJCAcCBhUKCQgLAgQW
AgMBAh4BAheAAAoJEJD+RIlYHzF5Mh8P/3XoQ9yf6eTR+y52LiBuF9dUKpxPkYE5
b/6PUuI4dl5znyxNXF6YaI50IewuQG9+55atEqovCJlSfZRQ7xH1W8VxwOSiisTJ
iuwWxXwyDFq7JnnHHLrPswJj2wOLTNjZpnXBHH7mh/AX2rEXueTvfzMYQaaltOJb
PTnbEVrBWZ11BK2JJCnmvDdEzm4i0b/poxm4wvaBFHpNhLmagPrAnJVQGgKhPY+X
gpr3R7jQAm8BdL53v3aG4kZOQxkrB1j5yLmZK8xQkjURAZs8Ps8lYp4NLN/OLE0e
9hf0skRWwDdOD4kxFmLTBW73Wtj/+QCTbyVtCrm+YVmDQ9nw+WEpdMZ4HMtBBs44
hyl0rfMAqpMaX04LTA6kilGg6+govm5W31FsOsQpYy002j4HpvKXWEmMfipuu4db
Y7ep1thyU+UVjk4OQLK3EArdT6KRGGO9QA5vXkA3EkP8ItBIGAouR62nckspNDQo
ryiEDt/aFqEAbslFhD6k3SmNAe9cM+/Vx5m2w3UPThzVekpZZnxTo6dFr4vt6DWQ
OjBSPa2jbKWh9an78FRwS+tToixVV1QHllfw9kWTdfHXMfozot03ZvzCcLq4asvH
5zQB1S9hIQXtJqHAM2f+3MgGYXQpn0pn5x8Dd8u5n63gjJE1cr+xau6BEfI/a67L
jIpSRDDhltIHuQINBFxmGOgBEADbrx3iclfeSoaE/cdEfpqFizvRvgpv/bi4CQKn
fX4uOurVYInD1H5/XdVYjfdc9RHhXkeIdieFh7GI3tnrGKNGUZ+7zVg7wtzwnX75
gUgTFLBJSriyuZW+GnRU5xHMUAd/jhp2tLGlsgmBuUGy6bMf9sWkz8dUsaW1u3DQ
GjAAMGdoYzBJCWLd5VWMWfxbQ8hSfjMguVs19l06LDiu4OkL2euAFprFTVhK/Zt4
wa/sRMpiLLgoJvcxfIHS+CmdeY5mm5QcaKj8JBnQIWZt88XlrtZY6DxLRu3SrX1A
10RBOqwyjdU25RV93KzBhPDnPdAVAk12wIHuArxuYJTuGrgPESRBNYVlp7hQmR3D
a7S37YkMJDu5PcR9gn4J1L4GrzdeDtvIkNVz+/XSpeFsmrjcsE5IlFKYibHkJoWk
AoRpkW/COsIQRGV1CySvMmVHnrs1RMMhbRcE1YMyFmedfcmyuuIDdNMOM9UdwyBj
I1Oz3iebIQ/aXgohVCuCM0k8o3wFa11Ci9Ag2svoA5/tatPCb770t0tOC05sTHlJ
xwx5Jpnd0yObjGIm63u0wF4lCznzxOdx/mq/9H2y1/vKl18+aHYwwOz7AGGcv5l9
oMJR7o3oimZ/qTCSldsjBWaRHebk3jIw0dkxvP3vq+TT3/URkcudUnCv+AnXfVRV
rgxtKQARAQABiQI2BBgBCAAgFiEE6Cf5LmRhM/k4r2j1kP5EiVgfMXkFAlxmGOgC
GwwACgkQkP5EiVgfMXmygA/+Mnd6i1IW14To6TJUP3i8aG/+RJiqREzDao8YX9ck
bFzsz3XY1kbmXAfcQReWpfk/OSI9y2LivfsFR0AZiZAUqrf7mqp7W7SbFRB/01uG
TZW3OjQ5m+UUez7I4aYXaIXWryfRMoSCPkT6UBpNdxTStuUAkR8SJtqGQy6hOAgy
h6ER9M0Hf0VDbATzEJdrwsTSjBjp/o29mAFQUWwRl9IntpHc2ouu1SYmRyIjcyca
Nkb3yp59HgbtNjbs1cHH++/IJ/6+cnfzlQpGFnv++SWRtNz9wZPfLHQZe6uSo59r
z3+yeHX70aDFYxeNuPUkILein9h4MSrcsKtAkRReMdx5Bq8inXYI92edGaJaR661
yb22rbbA7o0+XFls1oHavecjyLyBPsmb5qJ6zoBz8PuZ1uivXQeilMpxW434B8MY
MIOXvAOPcrNiKfi57C61x6nfoepCcoU9xg5/xYp2mny0NJV0PUrOUz7dja/ZXLAv
VOKgW7cyEwZ9K2WnIq5PBZ3GZgFsPNa5EkxdFTfALZS+kuqbdg8yNaY+xyBn3AUs
waYUruHhygKEgOBhHZBWobNxile+nfOd/7cn5PmP4aONdlNzUXfBko25ZfxsUW5l
yzi1pUho07hvO/AEDInUWEzATJJIS+9WwoM0tl86PmeQ/R8DZNcAEmPBFVfd56Ad
tPA=
=lRkN
-----END PGP PUBLIC KEY BLOCK-----

เมื่อไฟล์ข้อมูลถูกบีบอัด เราจะคลายการบีบอัดไฟล์ข้อมูลก่อนดำเนินการ ปัจจุบัน เราสนับสนุนการคลายการบีบอัดรูปแบบการบีบอัดสองประเภท: zip และ gzip

แบบแผนการตั้งชื่อไฟล์

ดังที่ได้กล่าวไว้ก่อนหน้านี้ คุณจะต้องให้ข้อมูลเกี่ยวกับโปรโตคอล โฮสต์ พอร์ตและเส้นทางไฟล์ไปยังไฟล์ข้อมูลเพื่อให้ CitrusAd สามารถดาวน์โหลดและประมวลผลไฟล์ข้อมูลได้ คุณสามารถเลือกเวลาในแต่ละวันที่สะดวกเพื่อให้แน่ใจว่าไฟล์ข้อมูลพร้อมใช้งานบนเซิร์ฟเวอร์ในแต่ละวัน และ CitrusAd จะดาวน์โหลดไฟล์ข้อมูลเป็นรายวัน

วิธีที่ง่ายที่สุดในการระบุไฟล์เป้าหมายสำหรับ CitrusAd ที่จะดาวน์โหลดในแต่ละวันคือการระบุชื่อไฟล์ที่ชัดเจน CitrusAd จะใช้ชื่อไฟล์นี้เพื่อดึงไฟล์ข้อมูลจากเซิร์ฟเวอร์ของคุณ

เมื่อคุณใช้โปรโตคอล FTP, FTPS และ SFTP สําหรับการสื่อสารระหว่างเซิร์ฟเวอร์ของคุณกับ CitrusAd เรารองรับตัวเลือกอื่นๆ ให้คุณระบุไฟล์เป้าหมายเพื่อให้ CitrusAd ดาวน์โหลด เช่น:

  • Rolling_earliest
  • Rolling_earliest_24_hours
  • Rolling_latest
  • Rolling_latest_24_hours

เรียกอีกอย่างว่าโหมดไฟล์เป้าหมาย

เมื่อคุณเลือกตัวเลือกใดตัวเลือกหนึ่งที่ระบุไว้ข้างต้น คุณจะต้องให้ CitrusAd พร้อมเทมเพลตข้อความสำหรับชื่อไฟล์ข้อมูล ในเทมเพลตข้อความ มีสตริงพิเศษ ซึ่งคือ “{*}” CitrusAd จะใช้เทมเพลตที่คุณให้มาเพื่อจับคู่ชื่อไฟล์บนเซิร์ฟเวอร์ของคุณเพื่อเลือกและดาวน์โหลดไฟล์เป้าหมายในแต่ละวัน

ตัวอย่างแม่แบบสามารถเป็น “CitrusAdCatalogDataAU{}.txt” แม่แบบกำหนดว่าชื่อไฟล์ที่จับคู่ต้องขึ้นต้นด้วยคำนำหน้า “CitrusAdCatalogData_AU” และลงท้ายด้วยคำต่อท้าย “.txt” เมื่อแม่แบบ “CitrusadCatalogData AU {_} .txt” ถูกนำมาใช้ชื่อไฟล์ด้านล่างจะตรงกับแม่แบบ:

CitrusAdCatalogProduct_AU_20190315.txt
CitrusAdCatalogProduct_AU_20190314.txt
CitrusAdCatalogProduct_AU_20190312.txt

เพื่อหลีกเลี่ยงการดาวน์โหลดไฟล์ข้อมูลที่คุณกําลังอัปโหลด CitrusAd จะดาวน์โหลดไฟล์ข้อมูลที่ได้รับการแก้ไขมากกว่าหนึ่งนาทีนับจากเวลาที่เราเข้าถึงเซิร์ฟเวอร์เท่านั้น

แม้ว่าจะมีชื่อไฟล์หลายชื่อที่ตรงกับเทมเพลต แต่ CitrusAd จะดาวน์โหลดและประมวลผลทีละไฟล์เท่านั้น ในการเลือกไฟล์จากรายชื่อผู้สมัคร เรากำหนดโหมดไฟล์เป้าหมายที่แตกต่างกันซึ่งคุณสามารถเลือกได้ โหมดไฟล์เป้าหมายมีรายละเอียดเพิ่มเติมด้านล่าง

Rolling_earliest

ในโหมดไฟล์เป้าหมายนี้ เราใช้เทมเพลตเพื่อกรองไฟล์โดยใช้ชื่อ จากนั้นเราจัดเรียงผลลัพธ์ตามชื่อไฟล์จากน้อยไปมาก และส่งคืนผลลัพธ์แรก

ตัวอย่างเช่น ถ้าแม่แบบสําหรับชื่อไฟล์คือ "CitrusAdCatalogDataAU{*}.txt” และรายการชื่อไฟล์ที่กรองโดยเทมเพลตอยู่ด้านล่าง ไฟล์ "CitrusAdCatalogProduct_AU_20190312.txt" จะถูกเลือกให้ดาวน์โหลดในโหมดไฟล์เป้าหมายนี้

CitrusAdCatalogProduct_AU_20190312.txt
CitrusAdCatalogProduct_AU_20190313.txt
CitrusAdCatalogProduct_AU_20190314.txt

Rolling_earliest_24_hours

ในโหมดไฟล์เป้าหมายนี้ ก่อนอื่นเราใช้เทมเพลตเพื่อกรองไฟล์โดยใช้ชื่อไฟล์ จากนั้นเราจะเลือกเฉพาะไฟล์ที่แก้ไขภายใน 24 ชั่วโมงที่ผ่านมา สุดท้าย เราจัดเรียงผลลัพธ์ตามชื่อไฟล์จากน้อยไปมาก และส่งคืนผลลัพธ์แรก

ตัวอย่างเช่น เราคิดว่าเวลาปัจจุบันคือ 15-03-2019 10:30:07 และเทมเพลตสำหรับชื่อไฟล์คือ “CitrusAdCatalogDataAU{*}.txt” ถ้ารายการชื่อไฟล์ที่ถูกกรอง โดยแม่แบบอยู่ในตารางด้านล่าง ไฟล์ “CitrusAdCatalogProduct_AU_20190314.txt” จะถูกเลือกให้ดาวน์โหลดในโหมดไฟล์เป้าหมายนี้

ตัวอย่างไฟล์ที่มีชื่อและข้อมูลที่แก้ไขล่าสุด

ชื่อไฟล์แก้ไขล่าสุด
CitrusAdCatalogProduct_AU_20190312.txt13/03/19 15:35:11
CitrusAdCatalogProduct_AU_20190313.txt13/03/19 15:35:08
CitrusAdCatalogProduct_AU_20190314.txt14/03/19 15:35:10
CitrusAdCatalogProduct_AU_20190315.txt15/03/19 10:05:07

Rolling_latest

ในโหมดไฟล์เป้าหมายนี้ เราใช้เทมเพลตเพื่อกรองไฟล์โดยใช้ชื่อไฟล์ จากนั้นเราจัดเรียงผลลัพธ์ตามชื่อไฟล์จากมากไปน้อยและส่งคืนผลลัพธ์แรก

ตัวอย่างเช่น หากเทมเพลตสําหรับชื่อไฟล์คือ "CitrusAdCatalogDataAU{*}.txt” และรายการชื่อไฟล์ที่กรองโดยเทมเพลตอยู่ด้านล่าง ไฟล์ "CitrusAdCatalogProduct_AU_20190314.txt" จะถูกเลือกให้ดาวน์โหลดในโหมดไฟล์เป้าหมายนี้

CitrusAdCatalogProduct_AU_20190314.txt
CitrusAdCatalogProduct_AU_20190313.txt
CitrusAdCatalogProduct_AU_20190312.txt

โหมดไฟล์เป้าหมายนี้คล้ายกับ Rolling_earliest อย่างไรก็ตาม แทนที่จะจัดเรียงไฟล์ตามชื่อไฟล์จากน้อยไปมาก เราจัดเรียงไฟล์ตามชื่อไฟล์จากมากไปหาน้อย

Rolling_latest_24_hours

ในโหมดไฟล์เป้าหมายนี้ ก่อนอื่นเราใช้เทมเพลตเพื่อกรองไฟล์โดยใช้ชื่อไฟล์ จากนั้นเราจะเลือกเฉพาะไฟล์ที่มีการแก้ไขภายในยี่สิบสี่ชั่วโมงที่ผ่านมา สุดท้าย เราจัดเรียงผลลัพธ์ตามชื่อไฟล์จากมากไปน้อยและส่งคืนผลลัพธ์แรก

ตัวอย่างเช่น เราคิดว่าเวลาปัจจุบันคือ 15-03-2019 10:30:07 และเทมเพลตสำหรับชื่อไฟล์คือ “CitrusAdCatalogDataAU{*}.txt” ถ้ารายการชื่อไฟล์ที่ถูกกรองตามเทมเพลตอยู่ในตารางด้านล่าง ไฟล์ “CitrusAdCatalogProduct_AU_20190315.txt” จะถูกเลือกให้ดาวน์โหลดในโหมดไฟล์เป้าหมายนี้

โหมดไฟล์เป้าหมายนี้จะคล้ายกับ Rolling_Earliest_24_hours อย่างไรก็ตามแทนที่จะเรียงลำดับไฟล์ตามชื่อไฟล์จากน้อยไปมากเราจัดเรียงตามชื่อไฟล์จากมากไปน้อย

ตัวอย่างไฟล์ที่มีชื่อและข้อมูลที่แก้ไขล่าสุด

ชื่อไฟล์แก้ไขล่าสุด
CitrusAdCatalogProduct_AU_20190312.txt13/03/19 15:35:11
CitrusAdCatalogProduct_AU_20190313.txt13/03/19 15:35:08
CitrusAdCatalogProduct_AU_20190314.txt14/03/19 15:35:10
CitrusAdCatalogProduct_AU_20190315.txt15/03/19 10:05:07