Ekspor dan impor konten
Glasswall menyediakan kemampuan untuk mengekspor dan mengimpor item konten untuk jenis file yang didukung. Hal ini memungkinkan komponen internal dari file yang diproses tersedia bagi proses dan aplikasi eksternal untuk pemrosesan tambahan di luar domain Glasswall Embedded Engine. Setelah diekspor, komponen ini dapat divalidasi secara eksternal sebelum Glasswall Engine mengimpor komponen tersebut dan menyusun ulang file.
File harus diproses oleh Glasswall Embedded Engine dua kali; pertama untuk mengekstrak paket yang berisi komponen yang membentuk sebuah file (export), dan kedua untuk mengintegrasikan kembali komponen yang dianalisis dan/atau dimodifikasi secara eksternal ke dalam file (import). Lihat Content Export & Import.
File dapat diekspor satu per satu dari path file atau di memori menggunakan metode export_file, atau semua file dari sebuah direktori dapat diekspor menggunakan metode export_directory.
Contoh
- Export
- Ekspor dari path file ke path file
- Ekspor dari jalur file ke memori
- Ekspor dari memori
- Ekspor file dalam direktori
- Ekspor file dalam direktori yang mungkin berisi tipe file yang tidak didukung
- Ekspor file dalam direktori menggunakan policy manajemen konten kustom
- Ekspor file dalam direktori secara kondisional berdasarkan format file
- Import
- Impor dari jalur file ke jalur file
- Impor dari jalur file ke memori
- Impor dari memori
- Impor file dalam direktori
- Impor file dalam direktori yang mungkin berisi tipe file yang tidak didukung
- Impor file dalam direktori menggunakan policy manajemen konten kustom
- Impor file dalam direktori secara kondisional berdasarkan format file
- Ekspor/Impor dan Analisis
Ekspor
Ekspor dari path file ke path file
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to export a file, writing the export archive to a new path
editor.export_file(
input_file=r"C:\gwpw\input\TestFile_11.doc",
output_file=r"C:\gwpw\output\editor\export_f2f\TestFile_11.doc.zip",
)
Ekspor dari path file ke memori
export_file mengembalikan byte file arsip yang diekspor. Contoh di bawah menunjukkan penetapan variabel export_archive dan pemeriksaan isi bagian awal arsip ekspor Editor.
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to export a file
export_archive = editor.export_file(
input_file=r"C:\gwpw\input\TestFile_11.doc",
)
assert export_archive[:8] == b'PK\x03\x04\x14\x00\x0e\x00'
Ekspor dari memori
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Read file from disk to memory
with open(r"C:\gwpw\input\TestFile_11.doc", "rb") as f:
input_bytes = f.read()
# Use the default policy to export a file
export_archive = editor.export_file(
input_file=input_bytes,
)
assert export_archive[:8] == b'PK\x03\x04\x14\x00\x0e\x00'
Ekspor file dalam direktori
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to export a directory of files, writing the export archives to a new directory.
editor.export_directory(
input_directory=r"C:\gwpw\input",
output_directory=r"C:\gwpw\output\editor\export_directory"
)
Ekspor file dalam direktori yang mungkin berisi tipe file yang tidak didukung
Perilaku default dari wrapper Python Glasswall adalah memunculkan exception yang relevan (lihat: glasswall.libraries.editor.errors) jika pemrosesan gagal. Meneruskan raise_unsupported=False akan mencegah exception dimunculkan dan dapat berguna saat bekerja dengan direktori yang berisi campuran tipe file yang didukung dan tidak didukung ketika diinginkan untuk memproses sebanyak mungkin file alih-alih menghentikan proses pada kegagalan pertama.
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to export a directory of files, writing the export archives to a new directory.
editor.export_directory(
input_directory=r"C:\gwpw\input_with_unsupported_file_types",
output_directory=r"C:\gwpw\output\editor\export_directory_unsupported",
raise_unsupported=False
)
Ekspor file dalam direktori menggunakan policy manajemen konten kustom
Menggunakan glasswall.content_management.policies.Editor:
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use a custom Editor policy to export all files in the input directory
# and write them to export_directory_custom directory. Write streams as
# ".xml" instead of the default interchange_type, ".sisl". Export embedded
# images as ".xml" instead of their default image file type.
editor.export_directory(
input_directory=r"C:\gwpw\input",
output_directory=r"C:\gwpw\output\editor\export_directory_custom",
content_management_policy=glasswall.content_management.policies.Editor(
default="sanitise",
config={
"sysConfig": {
"interchange_type": "xml",
"export_embedded_images": "true",
},
}
),
raise_unsupported=False
)
Ekspor file dalam direktori secara kondisional berdasarkan format file
Contoh di bawah ini mendemonstrasikan pemrosesan hanya file doc dan docx dari direktori bertingkat yang berisi beberapa format file.
import os
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
input_directory = r"C:\gwpw\input"
output_directory = r"C:\gwpw\output\editor\export_directory_file_format"
# Iterate relative file paths from input_directory
for relative_file in glasswall.utils.list_file_paths(input_directory, absolute=False):
# Construct absolute paths
input_file = os.path.join(input_directory, relative_file)
output_file = os.path.join(output_directory, relative_file + ".zip")
# Get the file type of the file
file_type = editor.determine_file_type(
input_file=input_file,
as_string=True,
raise_unsupported=False
)
# Export only doc and docx files
if file_type in ["doc", "docx"]:
editor.export_file(input_file, output_file)
Impor
Arsip ekspor dapat diimpor satu per satu dari jalur file atau di memori menggunakan metode import_file, atau semua arsip ekspor dari sebuah direktori dapat diimpor menggunakan metode import_directory.
Impor dari path file ke path file
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to import an export archive, writing the imported file to a new path
editor.import_file(
input_file=r"C:\gwpw\output\editor\export_f2f\TestFile_11.doc.zip",
output_file=r"C:\gwpw\output\editor\import_f2f\TestFile_11.doc",
)
Impor dari path file ke memori
import_file mengembalikan byte file yang diimpor. Contoh di bawah ini mendemonstrasikan penetapan variabel file_bytes dan pemeriksaan isi bagian awal dari arsip ekspor Editor.
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to import an export archive
file_bytes = editor.import_file(
input_file=r"C:\gwpw\output\editor\export_f2f\TestFile_11.doc.zip",
)
assert file_bytes[:8] == b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1'
Impor dari memori
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Read file from disk to memory
with open(r"C:\gwpw\output\editor\export_f2f\TestFile_11.doc.zip", "rb") as f:
export_archive_bytes = f.read()
# Use the default policy to import an export archive
file_bytes = editor.import_file(
input_file=export_archive_bytes,
)
assert file_bytes[:8] == b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1'
Impor file dalam direktori
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to import a directory of export archives, writing the import archives to a new directory.
editor.import_directory(
input_directory=r"C:\gwpw\output\editor\export_directory",
output_directory=r"C:\gwpw\output\editor\import_directory"
)
Impor file dalam direktori yang mungkin berisi tipe file yang tidak didukung
Perilaku default dari wrapper Python Glasswall adalah memunculkan exception yang relevan (lihat: glasswall.libraries.editor.errors) jika pemrosesan gagal. Meneruskan raise_unsupported=False akan mencegah exception dimunculkan dan dapat berguna saat bekerja dengan direktori yang berisi campuran tipe file yang didukung dan tidak didukung ketika diinginkan untuk memproses sebanyak mungkin file alih-alih menghentikan proses pada kegagalan pertama.
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use the default policy to export a directory of export archives, writing the export archives to a new directory.
editor.import_directory(
input_directory=r"C:\gwpw\output\editor\export_directory_unsupported",
output_directory=r"C:\gwpw\output\editor\import_directory_unsupported",
raise_unsupported=False
)
Impor file dalam direktori menggunakan policy manajemen konten kustom
Menggunakan glasswall.content_management.policies.Editor:
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
# Use a custom Editor policy to import all files in the export directory
# and write them to import_directory_custom directory. Read streams as
# ".xml" instead of the default interchange_type, ".sisl".
editor.import_directory(
input_directory=r"C:\gwpw\output\editor\export_directory_custom",
output_directory=r"C:\gwpw\output\editor\import_directory_custom",
content_management_policy=glasswall.content_management.policies.Editor(
default="sanitise",
config={
"sysConfig": {
"interchange_type": "xml",
},
}
),
raise_unsupported=False
)
Impor file dalam direktori secara kondisional berdasarkan format file
Contoh di bawah ini mendemonstrasikan pemrosesan hanya file doc dan docx dari direktori bertingkat yang berisi beberapa format file.
import os
import glasswall
# Load the Glasswall Editor library
editor = glasswall.Editor(r"C:\gwpw\libraries\10.0")
input_directory = r"C:\gwpw\output\editor\export_directory_file_format"
output_directory = r"C:\gwpw\output\editor\import_directory_file_format"
# Iterate relative file paths from input_directory
for relative_file in glasswall.utils.list_file_paths(input_directory, absolute=False):
# Construct absolute paths
input_file = os.path.join(input_directory, relative_file)
output_file = os.path.join(output_directory, os.path.splitext(relative_file)[0])
# Get the file type of the file
file_type = editor.determine_file_type(
input_file=input_file,
as_string=True,
raise_unsupported=False
)
# Import only doc.zip and docx.zip files
if file_type == "zip" and input_file.endswith(("doc.zip", "docx.zip",)):
editor.import_file(input_file, output_file)
Ekspor/Impor & Analisis
Fungsi tingkat tinggi ini memungkinkan Anda menjalankan Export atau Import dan menghasilkan laporan analisis dalam satu sesi. Untuk informasi lebih lanjut, lihat tautan dokumentasi di bawah ini.