· 6 years ago · Aug 11, 2019, 03:40 AM
1# storage/models.py
2
3class Bucket(models.Model):
4 name = models.CharField(max_length=63, unique=True)
5 access_key_id = models.CharField(max_length=16, default='', blank=True)
6 secret_key = models.CharField(max_length=128, default='', blank=True)
7
8 def __str__(self):
9 return self.name
10
11 def verify_request(self, request):
12 # Verify if request allowed to create/update Blobs in that bucket
13
14 @property
15 def size(self):
16 # Calculate sum of the all uploads inside
17 # that bucket and display it in human-readable format (KB, MB, GB ...)
18
19 def save(self, *args, **kwargs):
20 # Generate access_key_id/secret_key on save
21
22
23class Blob(models.Model):
24 bucket = models.ForeignKey(Bucket, on_delete=models.CASCADE)
25 path = models.CharField(max_length=512)
26 file = models.FileField()
27 content_type = models.CharField(max_length=128, default='')
28 size = models.IntegerField(default=0)
29
30 def __str__(self):
31 return self.path