Где хранятся файлы в приложении gloud python.? - PullRequest
0 голосов
/ 28 января 2020

Я развернул приложение python flask в облаке Google, которое генерирует файл json. Вот фрагмент кода:

@app.route('/save_data', methods=['POST'])
def index():

    try:
        raw_data = request.get_json()
        print(raw_data)
        with open("data.json", 'w') as fp:
            json.dump(raw_data, fp, indent=4, ensure_ascii=False)
        return jsonify({'Status': 'OK'}), 200
    except Exception as e:
        print(e)

Когда пользователь вызывает этот API, создается файл data.json. Я вижу журналы, используя gcloud app logs tail -s default и создаваемый файл, но я не уверен, где он сохранен. Я проверил каталог проекта, но файла там нет. Может кто-нибудь, пожалуйста, сообщите мне, где этот файл сохраняется. Спасибо

1 Ответ

0 голосов
/ 28 января 2020

Я бы предложил использовать Cloud Storage для сохранения файлов.

Чтение и запись временных файлов

Согласно официальной документации:

Хотя Cloud Storage является рекомендуемым решением для чтения и записи файлов в App Engine, если вашему приложению требуется только запись временных файлов, вы можете использовать стандартные методы Python 3.7 для записи файлов в каталог с именем /tmp.

Все файлы в этом каталоге хранятся в ОЗУ экземпляра, поэтому запись в / tmp занимает системную память. Кроме того, файлы в каталоге / tmp доступны только экземпляру приложения, создавшему файлы. Когда экземпляр удаляется, временные файлы удаляются.

Поэтому ваши файлы хранятся в папке /tmp.

...