Python Django 2:使用谷歌云存储将媒体上载到谷歌云存储

Python Django 2:使用谷歌云存储将媒体上载到谷歌云存储,python,django,google-cloud-storage,Python,Django,Google Cloud Storage,我想在谷歌云上部署Django应用程序(谷歌AppEngine和云Sql)。所以我需要在谷歌云存储中存储媒体文件 我在谷歌文档中找到了以下代码: from google.cloud import storage client = storage.Client() # https://console.cloud.google.com/storage/browser/[bucket-id]/ bucket = client.get_bucket('bucket-id-here') # Then do

我想在谷歌云上部署Django应用程序(谷歌AppEngine和云Sql)。所以我需要在谷歌云存储中存储媒体文件

我在谷歌文档中找到了以下代码:

from google.cloud import storage
client = storage.Client()
# https://console.cloud.google.com/storage/browser/[bucket-id]/
bucket = client.get_bucket('bucket-id-here')
# Then do other things...
blob = bucket.get_blob('remote/path/to/file.txt')
print(blob.download_as_string())
blob.upload_from_string('New contents!')
blob2 = bucket.blob('remote/path/storage.txt')
blob2.upload_from_filename(filename='/local/path.txt')

我想我可以在视图中使用它(对于FileField和ImageField)。但是,在这种情况下,我应该如何使用MEDIA\u ROOT在Django设置中执行呢?

您可以查看一下。同样,Oluwafemi Sule的评论也是真实的。另一方面,您可以找到一个python示例。 也许你想举一些例子来说明用法,但请记住,作为第三方工具,谷歌无法保证其准确性。

它是这样工作的:

views.py

from google.cloud import storage

def your_view(self, request):
    #some your code
    client = storage.Client()
    bucket = client.get_bucket(settings.GOOGLE_CLOUD_STORAGE_BUCKET)
    #path to the cloud storage "directory"
    prefix = 'media/'
    delimiter = '/'
    blobs = client.list_blobs(
        bucket,
        prefix = prefix,
        delimiter = delimiter
    )
    blob = storage.blob.Blob(
        name = name,
        bucket = bucket)
    blob.upload_from_string(
        resized_image, #some data
        content_type = 'image/jpeg'
    )
    # other your code
设置.py

MEDIA_URL = 'https://storage.googleapis.com/YOUR_BUCKET/media/'
GOOGLE_CLOUD_STORAGE_BUCKET = 'YOUR_BUCKET'

您可能会发现这里非常有用。没有django存储,您是否可以这样做?