#javascript #python #amazon-web-services #amazon-s3 #boto3
Вопрос:
Как изменить имя изображения и сохранить его, когда я загружаю изображение в s3 с помощью boto3.
бывший) datetime.jpg
мольбы о помощи….
@app.route('/fileupload', methods=['POST'])
def file_upload():
file = request.files['file']
s3 = boto3.client('s3',
aws_access_key_id="mykey",
aws_secret_access_key="myaccesskey"
)
s3.put_object(
ACL="public-read",
Bucket="burket",
Body=file,
Key=file.filename,
ContentType=file.content_type)
print(url)
return jsonify({'result': 'success'})
function save() {
let form_data = new FormData($('#upload-file')[0]);
$.ajax({
type: 'POST',
url: '/fileupload',
data: form_data,
processData: false,
contentType: false,
success: function (data) {
alert("success!");
},
});
}
Я думаю, мы можем использовать этот код.
Но его нельзя было использовать.
extension = file.filename.split('.')[-1]
today = datetime.now()
mytime = today.strftime('%Y-%m-%d-%H-%M-%S')
filename = f'file-{mytime}'
Комментарии:
1. Укажите любой ключевой параметр, который вам нравится, при вызове put_object. Вам не нужно использовать загруженное имя файла.
2.
Key
Параметр существует для той же цели — нет необходимости переименовывать сам файл.
Ответ №1:
Вы можете переименовывать объекты после загрузки в s3.
client.copy_object(Bucket="BucketName", CopySource="BucketName/OriginalName", Key="NewName")
client.delete_object(Bucket="BucketName", Key="OriginalName")