Comments (5)
Hi, thanks for reporting the issue, and I'm glad you're finding the lib useful!
I'll be happy to accept a PR with a fix, thanks
from aiogoogle.
Since everything is dynamically generated, I don't know how to fix this for one specific method.
Also ideally the fix works for pipe_to
as well, but I'm not quite sure what that looks like.
Basically there's probably a better fix that me trying to patch one specific method the way I'm doing right now in my code
from aiogoogle.
Can you share with me a full for reproduction please?
Also, the expected result so that I can compare it to the corrupted multipart file.
from aiogoogle.
Also I just noticed that you're passing a file object instead of a path as the upload_file argument. I don't think this is correct.
from aiogoogle.
Sure here's a more complete example. I'll let you fill in your own aiogoogle
and parent_id
. I'm using a file object because that works for both creates and updates, but pipe_from only works for creates. The multipart workaround does not work for pipe_from.
from io import BytesIO
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
data = BytesIO()
df.to_csv(data, index=False)
data.seek(0)
# Create that works (16 byte file)
async with aiogoogle:
drive = await aiogoogle.discover('drive', 'v3')
req = drive.files.create(upload_file=data.read(), supportsAllDrives=True, fields='id', json={ # type: ignore
'name': 'test.csv',
'parents': [parent_id]
})
res = await aiogoogle.as_service_account(req)
new_file_id = res['id']
# Update that doesn't work (229 byte file)
async with aiogoogle:
drive = await aiogoogle.discover('drive', 'v3')
req = drive.files.update(fileId=new_file_id, upload_file=data.read(), supportsAllDrives=True, fields='id')
# req.media_upload.multipart = False
await aiogoogle.as_service_account(req)
# Update that works (16 byte file)
async with aiogoogle:
drive = await aiogoogle.discover('drive', 'v3')
req = drive.files.update(fileId=new_file_id, upload_file=data.read(), supportsAllDrives=True, fields='id')
req.media_upload.multipart = False
await aiogoogle.as_service_account(req)
from aiogoogle.
Related Issues (20)
- Ability to upload from AsyncIterable object HOT 6
- Can we provide a way to test the package end to end? HOT 1
- URL formatting issue HOT 3
- URL encoding issues with Calendar IDs HOT 1
- Aiogoogle doesn't support the beta Drive Labels API HOT 5
- Token is not getting refreshed after its expired after around 1 hour HOT 17
- Inconsistent response. HOT 5
- Unclosed client session HOT 4
- URL formatting breaks the people.connections.list method HOT 1
- Authentication using application default method HOT 1
- HttpError doesn't include JSON error response with the "pipe_to" option enabled HOT 1
- paginn issue HOT 2
- Requesting Google Drive list with multiple pages always results in user_creds of None HOT 3
- Issue with `ServiceAccountCreds` with `universe_domain` HOT 2
- FYI sending messages with Gmail doesn't work HOT 1
- UserCreds oauth token not refreshed after 1hour HOT 1
- `trio` support broken: unexpected keyword argument 'auth_manager' HOT 3
- Should attributes in `HTTPError` be type annotated? HOT 1
- Module import error : contextvars HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aiogoogle.