.. _admin-plugins-buffer-upload: Buffer Upload Plugin ******************** .. Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. The Buffer Upload plugin offers the following features Installation ============ Configuration can be explicitly specified as a parameter in ``plugin.config`` :: buffer_upload.so /FOOBAR/upload.conf Memory buffering (buffer the entire POST data in IOBuffer before connecting to OS) ================================================================================== Memory buffer size is configured with "mem_buffer_size" in config file. Default and minimum value is 32K. You can increase it in the config file. If the size of a request is larger than the "mem_buffer_size" value specifiied in the config file, then the upload proxy feature will be disabled for this particular request Disk buffering (buffer the entire POST data on disk before connecting to OS) ============================================================================ 1. Disk async IO is used. AIO api call only involves certain amount of threads. The number of threads is configurable in plugin's config file (default is 4) 2. Directories and files are generated on disk . Base directory is /FOOBAR/var/buffer_upload_tmp/ (configurable in config file). Number of subdirectories is 64 (configurable in config file). Filename are randomly generated. Files will be removed when the entire data have been sent out to OS . At startup time, dangling files are removed (left on disk due to transaction interruption or traffic server crash) 3. Default chunk size when reading from disk is 16K, configurable in config file Trigger POST buffering on certain URLs ====================================== 1. Certain URLs will be provided in a plain text file (one URL each line) 2. Specify filename in config file by "url_list_file" 3. max length of each URL is 4096 (configurable in config file) 4. use exact match, don't support regex for now Other Features ============== 1. Default buffering mode is disk aio buffering mode. To turn off disk buffering, add a "use_disk_buffer 0" line in config file 2. All request headers inlcuding cookies plus the entire POST data will be buffered (either in memory or on disk) Configuration File ================== sample config file :: use_disk_buffer 1 convert_url 1 chunk_size 1024 url_list_file /tmp/url_list.conf max_url_length 10000 base_dir /tmp/test1 subdir_num 100 thread_num 10 mem_buffer_size 40000