Đồng bộ hóa dữ liệu thông qua giao thức tệp

Trong phần này, chúng tôi nêu lên các giao thức mà CitrusAd hỗ trợ và cách đặt tên cho các tệp để CitrusAd có thể tải xuống các tệp dữ liệu tự động từ máy chủ của bạn.

Giao thức

CitrusAd hỗ trợ một số cách để truy xuất tệp dữ liệu. Các tệp dữ liệu phải được lưu trữ trên máy chủ của bạn và các tệp sẽ được tải xuống thông qua một trong các giao thức chuẩn.

Hiện tại, CitrusAd hỗ trợ tải xuống các tệp dữ liệu thông qua các giao thức sau:

  • GCS
  • SFTP
  • SCP
  • HTTPS

Nói chung, bạn sẽ cần cung cấp thông tin về giao thức, máy chủ, cổng và đường dẫn tệp của tệp dữ liệu để CitrusAd có thể tải xuống. Khi cần xác thực để tải xuống tệp dữ liệu, bạn sẽ cần cung cấp cho CitrusAd thông tin xác thực (ví dụ: tên người dùng và mật khẩu) để xác thực với hệ thống của bạn.

Nếu bạn đang sử dụng giao thức SFTP, CitrusAd hỗ trợ hai loại xác thực để tải xuống tệp dữ liệu:

  • Tên người dùng và mật khẩu
  • Chìa khóa công khai của CitrusAd.

Trong loại xác thực thứ hai, chìa khóa công khai dưới đây cần được cài đặt vào máy chủ SFTP của bạn.

Phân đoạn:

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

Sản xuất

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==

Sản xuất:

Nén và mã hóa dữ liệu

Bạn có thể sẽ cần nén và mã hóa dữ liệu trước khi tải lên máy chủ để đồng bộ hóa. Khi các tệp dữ liệu vừa được nén lại vừa được mã hóa, CitrusAd sẽ giả định rằng các tệp dữ liệu được nén trước khi mã hóa.

Khi tệp dữ liệu được mã hóa, CitrusAd sẽ giải mã tệp dữ liệu sau khi tải xuống. Hiện tại, chúng tôi hỗ trợ giải mã dữ liệu cho các tệp được mã hóa bởi các chương trình PGP. Có thể tìm hiểu thêm thông tin về kỹ thuật mã hóa PGP tại https://tools.ietf.org/html/rfc4880.

Nếu bạn chọn sử dụng loại mã hóa này cho các tệp dữ liệu, bạn có thể sử dụng các tệp dữ liệu mã hóa chìa khóa công khai dưới đây trước khi tải tệp lên máy chủ của mình. Chỉ CitrusAd mới có thể giải mã các tệp dữ liệu được mã hóa.

Chìa khóa công khai:

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

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
tPA=
=lRkN
-----END PGP PUBLIC KEY BLOCK-----

Khi tệp dữ liệu được phân phối ở dạng nén, chúng tôi sẽ giải nén tệp dữ liệu trước khi xử lý. Hiện tại, chúng tôi hỗ trợ giải nén hai loại định dạng nén là: zip và gzip.

Quy ước đặt tên tệp

Như đã đề cập trước đây, bạn sẽ cần cung cấp thông tin về giao thức, máy chủ lưu trữ, cổng và đường dẫn tệp đến tệp dữ liệu để CitrusAd có thể tải xuống và xử lý tệp dữ liệu. Bạn có thể chọn thời gian hàng ngày thuận tiện để đảm bảo rằng tệp dữ liệu đã sẵn sàng trên máy chủ mỗi ngày và CitrusAd sẽ tải xuống các tệp dữ liệu hàng ngày.

Cách đơn giản nhất để chỉ định tệp đích cho CitrusAd tải xuống mỗi ngày là cung cấp tên tệp rõ ràng. Sau đó CitrusAd sẽ sử dụng tên tệp này để truy xuất tệp dữ liệu từ máy chủ của bạn.

Khi bạn sử dụng các giao thức FTP, FTPS và SFTP để giao tiếp giữa máy chủ của mình và CitrusAd, chúng tôi hỗ trợ các tùy chọn khác để bạn chỉ định các tệp đích cho CitrusAd tải xuống, bao gồm:

  • Rolling_earliest
  • Rolling_earliest_24_hours
  • Rolling_latest
  • Rolling_latest_24_hours.

Chúng còn được gọi là các chế độ tệp đích.

Khi bạn chọn một trong các tùy chọn nêu trên, bạn sẽ cần cung cấp cho CitrusAd mẫu văn bản cho tên tệp dữ liệu. Trong mẫu văn bản này có một chuỗi đặc biệt, đó là “{*}”. CitrusAd sẽ sử dụng mẫu do bạn cung cấp để khớp với tên tệp trên máy chủ của bạn để chọn và tải xuống tệp đích mỗi ngày.

Lấy “CitrusAdCatalogDataAU{}.txt” làm một ví dụ. Mẫu này quy định rằng tên tệp phù hợp phải bắt đầu bằng tiền tố “CitrusAdCatalogData_AU” và kết thúc bằng hậu tố “.txt”. Khi sử dụng mẫu “CitrusAdCatalogDataAU{_}.txt”, các tên tệp dưới đây phải khớp với mẫu:

CitrusAdCatalogProduct_AU_20190315.txt
CitrusAdCatalogProduct_AU_20190314.txt
CitrusAdCatalogProduct_AU_20190312.txt

Để tránh tải xuống các tệp dữ liệu mà bạn đang tải lên, CitrusAd chỉ tải xuống tệp dữ liệu đã được sửa đổi hơn một phút kể từ khi chúng tôi truy cập máy chủ.

Mặc dù có một số tên tệp phù hợp với mẫu, CitrusAd chỉ tải xuống và xử lý một tệp tại một thời điểm. Để chọn một tệp từ danh sách các ứng viên, chúng tôi xác định các chế độ tệp mục tiêu khác nhau mà bạn có thể chọn. Các chế độ tệp đích được thảo luận chi tiết hơn bên dưới.

Rolling_earliest

Trong chế độ tệp đích này, chúng tôi sử dụng mẫu để lọc tệp bằng cách sử dụng tên của chúng, sau đó chúng tôi sắp xếp kết quả theo tên tệp tăng dần và trả về kết quả đầu tiên.

Ví dụ: nếu mẫu của tên tệp là “CitrusAdCatalogDataAU{*}.txt” và danh sách tên tệp được lọc theo mẫu như bên dưới, thì tệp “CitrusAdCatalogProduct_AU_20190312.txt” sẽ được chọn để tải xuống trong chế độ tệp đích.

CitrusAdCatalogProduct_AU_20190312.txt
CitrusAdCatalogProduct_AU_20190313.txt
CitrusAdCatalogProduct_AU_20190314.txt

Rolling_earliest_24_hours

Trong chế độ tệp đích này, trước tiên chúng tôi sử dụng mẫu để lọc các tệp bằng tên của chúng. Sau đó, chúng tôi chỉ chọn các tệp được sửa đổi trong vòng 24 giờ gần đây. Cuối cùng, chúng tôi sắp xếp kết quả theo tên tệp tăng dần và trả về kết quả đầu tiên.

Ví dụ: giả định rằng thời gian hiện tại là 10:30:07 ngày 15-03-2019 và mẫu của tên tệp là “CitrusAdCatalogDataAU{*}.txt”. Nếu danh sách tên tệp được lọc theo mẫu nằm trong bảng dưới đây, tệp “CitrusAdCatalogProduct_AU_20190314.txt” sẽ được chọn để tải xuống trong chế độ tệp đích.

Ví dụ về các tệp có tên và thông tin sửa đổi lần cuối

Tên tệpSửa đổi lần cuối
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

Trong chế độ tệp đích này, chúng tôi sử dụng mẫu để lọc các tệp bằng tên của chúng. Sau đó, chúng tôi sắp xếp kết quả theo tên tệp giảm dần và trả về kết quả đầu tiên.

Ví dụ: nếu mẫu của tên tệp là “CitrusAdCatalogDataAU{*}.txt” và danh sách tên tệp được lọc theo mẫu như bên dưới, thì tệp “CitrusAdCatalogProduct_AU_20190314.txt” sẽ được chọn để tải xuống trong chế độ tệp đích.

CitrusAdCatalogProduct_AU_20190314.txt
CitrusAdCatalogProduct_AU_20190313.txt
CitrusAdCatalogProduct_AU_20190312.txt

Chế độ tệp đích này tương tự như Rolling_earliest. Tuy nhiên, thay vì sắp xếp các tệp theo tên tệp tăng dần thì chúng tôi sắp xếp theo tên tệp giảm dần.

Rolling_latest_24_hours

Trong chế độ tệp đích này, trước tiên chúng tôi sử dụng mẫu để lọc các tệp bằng tên của chúng. Sau đó, chúng tôi chỉ chọn các tệp được sửa đổi trong vòng 24 giờ gần đây. Cuối cùng, chúng tôi sắp xếp kết quả theo tên tệp giảm dần và trả về kết quả đầu tiên.

Ví dụ: giả định rằng thời gian hiện tại là 10:30:07 ngày 15-03-2019 và mẫu của tên tệp là “CitrusAdCatalogDataAU{*}.txt”. Nếu danh sách tên tệp được lọc theo mẫu nằm trong bảng dưới đây, tệp “CitrusAdCatalogProduct_AU_20190315.txt” sẽ được chọn để tải xuống trong chế độ tệp đích này.

Chế độ tệp đích này tương tự như Rolling_earliest_24_hours. Tuy nhiên, thay vì sắp xếp các tệp theo tên tệp tăng dần thì chúng tôi sắp xếp theo tên tệp giảm dần.

Ví dụ về các tệp có tên và thông tin sửa đổi lần cuối

Tên tệpSửa đổi lần cuối
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