salt.fileserver.s3fs

Amazon S3 Fileserver Backend

This backend exposes directories in S3 buckets as Salt environments. To enable this backend, add s3fs to the fileserver_backend option in the Master config file.

fileserver_backend:
  - s3fs

S3 credentials must also be set in the master config file:

s3.keyid: GKTADJGHEIQSXMKKRBJ08H
s3.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs

Alternatively, if on EC2 these credentials can be automatically loaded from instance metadata.

This fileserver supports two modes of operation for the buckets:

  1. A single bucket per environment

    s3.buckets:
      production:
        - bucket1
        - bucket2
      staging:
        - bucket3
        - bucket4
    
  2. Multiple environments per bucket

    s3.buckets:
      - bucket1
      - bucket2
      - bucket3
      - bucket4
    

Note that bucket names must be all lowercase both in the AWS console and in Salt, otherwise you may encounter SignatureDoesNotMatch errors.

A multiple-environment bucket must adhere to the following root directory structure:

s3://<bucket name>/<environment>/<files>

注解

This fileserver back-end requires the use of the MD5 hashing algorithm. MD5 may not be compliant with all security policies.

salt.fileserver.s3fs.dir_list(load)

返回一个在master所有目录的列表。

salt.fileserver.s3fs.envs()

Return a list of directories within the bucket that can be used as environments.

salt.fileserver.s3fs.file_hash(load, fnd)

Return an MD5 file hash

salt.fileserver.s3fs.file_list(load)

在指定环境中返回文件服务器的所有文件列表

salt.fileserver.s3fs.file_list_emptydirs(load)

Return a list of all empty directories on the master

salt.fileserver.s3fs.find_file(path, saltenv='base', **kwargs)

Look through the buckets cache file for a match. If the field is found, it is retrieved from S3 only if its cached version is missing, or if the MD5 does not match.

salt.fileserver.s3fs.serve_file(load, fnd)

从一个基于接收到的文件中返回数据块

salt.fileserver.s3fs.update()

Update the cache file for the bucket.