Как зашифровать файл из Python, используя шифрование на стороне сервера AWS KMS - PullRequest
0 голосов
/ 09 мая 2019

Я довольно новичок в питоне. Нужна помощь. Это то, что мне нужно.

  • Мы хотим найти файл в каталоге, если файл существует и размер файла не равен нулю, я хочу зашифровать файл с использованием шифрования AWS KMS и загрузить его в корзину.
  • Если файл не существует, вызвать исключение
  • Если файл существует, но файл имеет нулевые байты, то возникает исключение.

Ниже приведен код, который я мог бы придумать, но я уверен, что есть лучший способ написать это, и мне нужна ваша помощь. Единственное, чего я не смог добиться - это шифрование.

import os
import sys
import boto3
from botocore.client import Config
import configparser
import re
import os.path
import glob

## Initialize the Parameters
def initconfig(input):

    config = configparser.ConfigParser()
    config.read_file(open( 'CONFIG_AIRBILLING.conf'))
    print('Code Name is :'+ input)
    global REMOTE_DIR,ACCESS_KEY_ID,ACCESS_SECRET_KEY,BUCKET_NAME,TARGET_DIR,FILENAME,SRC_DIR,File,FILEPATH
    ACCESS_KEY_ID = config.get('ACCESS', 'ACCESS_KEY_ID')
    print('ACCESS_ID_IS:'+ ACCESS_KEY_ID)
    ACCESS_SECRET_KEY = config.get('ACCESS', 'ACCESS_SECRET_KEY')
    BUCKET_NAME = config.get('ACCESS', 'BUCKET_NAME')
    SRC_DIR = config.get(input, 'SRC_DIR')
    FILENAME = config.get(input, 'FILENAME')
    FILENAME=FILENAME+'*.txt'
    FILEPATH=SRC_DIR+'\\'+FILENAME
    print('File Path is:'+FILEPATH)
    TARGET_DIR = config.get(input, 'TARGET_DIR')
    File='demo.txt'


## This function will make sure file exist in Source directory
def readstatus():
    print('Startibg')
    try:
        with open(FILEPATH,'r') as f:
            f.closed
            result='True'
            movefiles(result)
    except (Exception) as e:
        print('***Error:File Not Found or Accessible***')
        result='False*'
        raise e


## This function will move the files to AWS S3 bucket
def movefiles(result):
    if result=='True':
        s3 = boto3.resource(
            's3',
            aws_access_key_id=ACCESS_KEY_ID,
            aws_secret_access_key=ACCESS_SECRET_KEY,
            config=Config(signature_version='s3v4')
        )
        s3.Bucket(BUCKET_NAME).put_object(Key=TARGET_DIR + '/' + File, Body=File)
        print('***File Moved***')


    print("Done")

if __name__ == '__main__':
    print(len(sys.argv))
    initconfig(sys.argv[1])
    print(sys.argv)
    readstatus()
#initconfig(input=input())
#readstatus()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...